{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"Keyvra Agent API","version":"2026-10-02.2","description":"Personal delegated tokens, live principal permissions and ceilings, catalog risk levels, and one-time human approvals. See http-api.md for the normative wire contract."},"servers":[{"url":"https://app.keyvra.io/api/agent/v1"}],"security":[{"bearerAuth":[]}],"paths":{"/openapi.json":{"get":{"operationId":"openApiReference","security":[],"summary":"Public OpenAPI 3.1 reference","responses":{"200":{"description":"Compact JSON, cached for five minutes with a version-derived ETag","content":{"application/json":{"schema":{"type":"object"}}}},"304":{"description":"ETag matches the current catalog version"}}}},"/catalog.json":{"get":{"operationId":"catalogReference","security":[],"summary":"Sanitized allow and interactive operation catalog","responses":{"200":{"description":"Compact JSON, cached for five minutes with a version-derived ETag","content":{"application/json":{"schema":{"type":"object"}}}},"304":{"description":"ETag matches the current catalog version"}}}},"/me":{"get":{"operationId":"whoami","summary":"Get principal and effective token access","responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Me"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/operations":{"get":{"operationId":"listOperations","summary":"List public and token-tier operations","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"group","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","description":"Case-insensitive id, title and summary match.","schema":{"type":"string"}},{"name":"callable","in":"query","schema":{"const":"true"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"operations":{"type":"array","maxItems":1000,"items":{"$ref":"#/components/schemas/Operation"}},"catalogVersion":{"type":"string"}},"required":["operations","catalogVersion"]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/operations/{id}":{"get":{"operationId":"describeOperation","summary":"Describe operation and caller arguments","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Catalog operation id","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Operation"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"executeOperation","summary":"Execute a catalog operation","description":"Only allow-policy operations may execute. Maximum request body is 256 KiB. Query and mutation deadlines are 30 seconds; action deadlines are 60 seconds. Values use Convex JSON.","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Catalog operation id","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"type":"object"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/approvals/{id}":{"get":{"operationId":"getApproval","summary":"Read an approval belonging to this token","description":"Poll at most every five seconds. Approvals expire after 30 minutes.","parameters":[{"name":"id","in":"path","required":true,"description":"Approval id","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"approval":{"$ref":"#/components/schemas/ApprovalStatus"}},"required":["approval"]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/grants/current/revoke":{"post":{"operationId":"revokeCurrentGrant","summary":"Revoke the calling token","responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"revoked":{"const":true}},"required":["revoked"]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/mcp":{"post":{"operationId":"remoteMcp","summary":"Stateless Streamable HTTP MCP with JSON responses","description":"Protocol revision 2025-06-18. Supports initialize, notifications/initialized, ping, tools/list and tools/call. No Mcp-Session-Id is issued.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number"]},"method":{"enum":["initialize","notifications/initialized","ping","tools/list","tools/call"]},"params":{"type":"object"}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"JSON-RPC result or error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number","null"]},"result":{},"error":{"type":"object"}},"required":["jsonrpc","id"]}}}},"202":{"description":"Accepted notification","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/operations/account.bookingRequests.get":{"post":{"operationId":"execute_account_bookingRequests_get","summary":"Get booking approval status","description":"Return the caller-owned booking request's status, expiry, offer selection, time window, and amount.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","x-convex-table":"bookingRequests"}},"required":["requestId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"currency":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestId":{"type":"string","x-convex-table":"bookingRequests"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["amountCents","channelId","currency","endMs","expiresAt","offerId","offerVersion","requestId","startMs","status","tenantId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.bookingReviews.create":{"post":{"operationId":"execute_account_bookingReviews_create","summary":"Publish a verified booking review","description":"Publish a review for the caller's completed, paid booking and update listing rating aggregates.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"},"memberId":{"type":"string","x-convex-table":"members"},"rating":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["body","bookingId","memberId","rating"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ratingAvgTimesTen":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reviewCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reviewId":{"type":"string","x-convex-table":"reviews"}},"required":["ratingAvgTimesTen","reviewCount","reviewId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.bookings.list":{"post":{"operationId":"execute_account_bookings_list","summary":"List account bookings","description":"Return upcoming and past bookings across the caller's claimed tenant memberships.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","confirmationHref","detailHref"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.complaints.create":{"post":{"operationId":"execute_account_complaints_create","summary":"Report a purchase problem","description":"Open a complaint case for the caller's booking or order, or return an existing open case.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"anyOf":[{"const":"not_as_described"},{"const":"access_problem"},{"const":"billing_problem"},{"const":"safety_concern"},{"const":"other"}]},"narrative":{"type":"string"},"subject":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"bookings"},"kind":{"const":"booking"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"commerceOrders"},"kind":{"const":"order"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["category","narrative","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"disputeCases"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.complaints.get":{"post":{"operationId":"execute_account_complaints_get","summary":"Get complaint status","description":"Return the latest caller-owned complaint receipt status for a booking or order.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"bookings"},"kind":{"const":"booking"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"commerceOrders"},"kind":{"const":"order"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.dashboard.get":{"post":{"operationId":"execute_account_dashboard_get","summary":"Get account dashboard","description":"Return the caller's bookings, purchases, favorites, payment attention items, and annual spending summary.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","bookingHref","attention.href"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.favorites.list":{"post":{"operationId":"execute_account_favorites_list","summary":"List saved listings","description":"Return a page of the caller's favorites that still have published, non-deleted listings.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.favorites.toggle":{"post":{"operationId":"execute_account_favorites_toggle","summary":"Toggle a saved listing","description":"Save or remove a published listing in the caller's favorites.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"listingId":{"type":"string","x-convex-table":"listings"}},"required":["listingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentCollections.list":{"post":{"operationId":"execute_account_installmentCollections_list","summary":"List installment card collections","description":"Return recent card-collection attempts for a payment plan, using the selected staff or customer projection.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"anyOf":[{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"invoicePaymentCollections"},"agentPaymentQuoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserRecoveryAllowed":{"type":"boolean"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"email":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"installmentKey":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"lastEventId":{"type":"string"},"lastFailureAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"observationEventAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paidAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentIntentId":{"type":"string"},"paymentTimestampSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"}]},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"refund":{"type":"object","properties":{"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"request":{"type":"object","properties":{"accountScope":{"type":"string"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"identity":{"type":"string"},"providerStatus":{"type":"string"},"refundId":{"type":"string"}},"required":["accountScope","amountCents","currency","identity","providerStatus"],"additionalProperties":false},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["effectsDeferred","providerStatus","status","statusOnly"],"additionalProperties":false},"refundFirstSentAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundId":{"type":"string"},"refundSettledBinding":{"type":"string"},"refundStatus":{"anyOf":[{"const":"pending"},{"const":"failed"},{"const":"succeeded"}]},"refundTimestampSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"}]},"refundedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"returnUrl":{"type":"string"},"status":{"anyOf":[{"const":"creating"},{"const":"open"},{"const":"paid"},{"const":"failed"},{"const":"expired"},{"const":"refund_required"},{"const":"refunded"}]},"stripeAccountId":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","applicationFeeCents","browserRecoveryAllowed","createdAt","currency","expiresAt","installmentKey","invoiceId","name","planId","refundedCents","returnUrl","status","stripeAccountId","tenantId","updatedAt"],"additionalProperties":false},{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"invoicePaymentCollections"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserRecoveryAllowed":{"type":"boolean"},"currency":{"type":"string"},"installmentKey":{"type":"string"},"refund":{"type":"object","properties":{"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"request":{"type":"object","properties":{"accountScope":{"type":"string"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"identity":{"type":"string"},"providerStatus":{"type":"string"},"refundId":{"type":"string"}},"required":["accountScope","amountCents","currency","identity","providerStatus"],"additionalProperties":false},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["effectsDeferred","providerStatus","status","statusOnly"],"additionalProperties":false},"refundStatus":{"anyOf":[{"const":"pending"},{"const":"failed"},{"const":"succeeded"}]},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"status":{"type":"string"}},"required":["_id","amountCents","browserRecoveryAllowed","currency","installmentKey","refundedCents","status"],"additionalProperties":false}]}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["checkoutUrl","sessionId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentCollections.recover":{"post":{"operationId":"execute_account_installmentCollections_recover","summary":"Recover an installment payment","description":"Reconcile a recorded card collection against Stripe and return configuration state and reason.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"collectionId":{"type":"string","x-convex-table":"invoicePaymentCollections"}},"required":["collectionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"const":"review_blocked"},{"const":"pending"},{"const":"succeeded"},{"const":"failed"},{"const":"manually_settled"}]},"statusOnly":{"type":"boolean"}},"required":["configured","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentPayments.cancel":{"post":{"operationId":"execute_account_installmentPayments_cancel","summary":"Cancel a installment payment","description":"Confirm provider cancellation before releasing the hold or collection.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentPayments.get":{"post":{"operationId":"execute_account_installmentPayments_get","summary":"Get a installment payment","description":"Read settlement and refund state recorded by the existing domain handler.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentPayments.pay":{"post":{"operationId":"execute_account_installmentPayments_pay","summary":"Pay a installment payment","description":"Pay the frozen obligation with a shared payment token or return a signed human checkout handoff.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentPayments.quote":{"post":{"operationId":"execute_account_installmentPayments_quote","summary":"Quote a installment payment","description":"Preview the saved amount, connected account profile and available payment modes.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","applicationFeeCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentPayments.recover":{"post":{"operationId":"execute_account_installmentPayments_recover","summary":"Recover a installment payment","description":"Reconcile the original payment without creating a replacement charge.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.installmentPayments.reserve":{"post":{"operationId":"execute_account_installmentPayments_reserve","summary":"Reserve a installment payment","description":"Freeze the owned commercial obligation before delegating a one-time payment.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedPricingHash":{"type":"string"},"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["expectedPricingHash","installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.invoiceAccounts.list":{"post":{"operationId":"execute_account_invoiceAccounts_list","summary":"List invoice accounts","description":"Return subject-linked member accounts and supplier names, with a truncation flag.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"supplierName":{"type":"string"}},"required":["memberId","supplierName"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["rows","truncated"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.orders.get":{"post":{"operationId":"execute_account_orders_get","summary":"Get purchase order","description":"Return the caller's purchase order with fulfillment, approval, and payment information.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orderId":{"type":"string","x-convex-table":"commerceOrders"}},"required":["orderId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"cardAvailable":{"type":"boolean"},"currency":{"type":"string"},"decisionReason":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"id":{"type":"string","x-convex-table":"commerceOrders"},"kind":{"anyOf":[{"const":"rental"},{"const":"service"},{"const":"pass"},{"const":"event"}]},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentDueAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"paymentState":{"anyOf":[{"type":"string"},{"type":"null"}]},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantName":{"type":"string"},"timeZone":{"type":"string"}},"required":["amountCents","cardAvailable","currency","endMs","id","kind","name","offerId","offerVersion","paymentDueAt","paymentState","quantity","refundedCents","startMs","status","tenantName","timeZone"],"additionalProperties":false},{"type":"null"}]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.orders.list":{"post":{"operationId":"execute_account_orders_list","summary":"List purchase orders","description":"Return a page of purchase orders belonging to the caller.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"cardAvailable":{"type":"boolean"},"currency":{"type":"string"},"decisionReason":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"id":{"type":"string","x-convex-table":"commerceOrders"},"kind":{"anyOf":[{"const":"rental"},{"const":"service"},{"const":"pass"},{"const":"event"}]},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentDueAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"paymentState":{"anyOf":[{"type":"string"},{"type":"null"}]},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantName":{"type":"string"},"timeZone":{"type":"string"}},"required":["amountCents","cardAvailable","currency","endMs","id","kind","name","offerId","offerVersion","paymentDueAt","paymentState","quantity","refundedCents","startMs","status","tenantName","timeZone"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.preferences.update":{"post":{"operationId":"execute_account_preferences_update","summary":"Update marketplace preferences","description":"Create or update the caller's marketing preference and return the marketplace profile.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"marketingOptIn":{"type":"boolean"}},"required":["marketingOptIn"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.profile.get":{"post":{"operationId":"execute_account_profile_get","summary":"Get marketplace profile","description":"Return the caller's identity-derived name and email plus marketplace marketing preferences.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.purchasePayments.cancel":{"post":{"operationId":"execute_account_purchasePayments_cancel","summary":"Cancel a purchase payment","description":"Confirm provider cancellation before releasing the hold or collection.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.purchasePayments.get":{"post":{"operationId":"execute_account_purchasePayments_get","summary":"Get a purchase payment","description":"Read settlement and refund state recorded by the existing domain handler.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.purchasePayments.pay":{"post":{"operationId":"execute_account_purchasePayments_pay","summary":"Pay a purchase payment","description":"Pay the frozen obligation with a shared payment token or return a signed human checkout handoff.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.purchasePayments.quote":{"post":{"operationId":"execute_account_purchasePayments_quote","summary":"Quote a purchase payment","description":"Preview the saved amount, connected account profile and available payment modes.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orderId":{"type":"string","x-convex-table":"commerceOrders"}},"required":["orderId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","applicationFeeCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.purchasePayments.recover":{"post":{"operationId":"execute_account_purchasePayments_recover","summary":"Recover a purchase payment","description":"Reconcile the original payment without creating a replacement charge.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.purchasePayments.reserve":{"post":{"operationId":"execute_account_purchasePayments_reserve","summary":"Reserve a purchase payment","description":"Freeze the owned commercial obligation before delegating a one-time payment.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedPricingHash":{"type":"string"},"orderId":{"type":"string","x-convex-table":"commerceOrders"}},"required":["expectedPricingHash","orderId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.quotes.accept":{"post":{"operationId":"execute_account_quotes_accept","summary":"Accept saved quote terms","description":"Record version-bound recipient acceptance evidence and convert the quote without charging.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"evidence":{"type":"string"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"termsAccepted":{"type":"boolean"},"termsVersion":{"type":"string"}},"required":["evidence","expectedVersion","quoteId","termsAccepted","termsVersion"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"anyOf":[{"type":"string","x-convex-table":"bookings"},{"type":"null"}]},"handoffUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"invoiceId":{"anyOf":[{"type":"string","x-convex-table":"invoices"},{"type":"null"}]},"paymentMode":{"type":"string"},"planId":{"anyOf":[{"type":"string","x-convex-table":"invoicePaymentPlans"},{"type":"null"}]},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"subscriptionId":{"anyOf":[{"type":"string","x-convex-table":"memberSubscriptions"},{"type":"null"}]}},"required":["bookingId","handoffUrl","invoiceId","paymentMode","planId","quoteId","subscriptionId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["acceptanceEvidence","sharedPaymentToken","sessionUrl","checkoutUrl"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.quotes.get":{"post":{"operationId":"execute_account_quotes_get","summary":"Get own quote","description":"Return a sent or accepted quote for its verified recipient.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"quoteId":{"type":"string","x-convex-table":"salesQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"salesQuotes"},"acceptanceEvidence":{"type":"string"},"acceptedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"acceptedByMemberId":{"type":"string","x-convex-table":"members"},"acceptedByUserId":{"type":"string","x-convex-table":"users"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"convertedBookingId":{"type":"string","x-convex-table":"bookings"},"convertedSubscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"depositCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"leadId":{"type":"string","x-convex-table":"salesLeads"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"draft"},{"const":"sent"},{"const":"accepted"},{"const":"canceled"}]},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"anyOf":[{"type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"const":"booking"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"snapshot":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"capturedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"currency":{"type":"string"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"remoteFulfillmentPolicy":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","capturedAt","channelId","currency","name","offerId","quantity","resourceId","rules","terms","version"],"additionalProperties":false},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","kind","offerId","offerVersion","snapshot","spaceId","startMs"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"planVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"snapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","priceCents","propertyIds","seatLimit"],"additionalProperties":false}},"required":["kind","planId","planVersion","snapshot"],"additionalProperties":false}]},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRateName":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","benefitCents","createdAt","currency","depositCents","expiresAt","leadId","memberId","note","salesChannel","status","subtotalCents","target","taxCents","taxInclusive","taxRateBps","taxRateId","taxRateName","tenantId","title","totalCents","updatedAt","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.reviews.create":{"post":{"operationId":"execute_account_reviews_create","summary":"Review an account booking","description":"Publish a verified review for a completed, paid booking owned by the caller.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"},"rating":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["body","bookingId","rating"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.statements.get":{"post":{"operationId":"execute_account_statements_get","summary":"Get an invoice statement","description":"Return the caller's invoice statement, installment balances, receipt/credit-note history and customer-safe card collections.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoiceId":{"type":"string","x-convex-table":"invoices"}},"required":["invoiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"collections":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"invoicePaymentCollections"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserRecoveryAllowed":{"type":"boolean"},"currency":{"type":"string"},"installmentKey":{"type":"string"},"refund":{"type":"object","properties":{"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"request":{"type":"object","properties":{"accountScope":{"type":"string"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"identity":{"type":"string"},"providerStatus":{"type":"string"},"refundId":{"type":"string"}},"required":["accountScope","amountCents","currency","identity","providerStatus"],"additionalProperties":false},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["effectsDeferred","providerStatus","status","statusOnly"],"additionalProperties":false},"refundStatus":{"anyOf":[{"const":"pending"},{"const":"failed"},{"const":"succeeded"}]},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"status":{"type":"string"}},"required":["_id","amountCents","browserRecoveryAllowed","currency","installmentKey","refundedCents","status"],"additionalProperties":false}},"historyTruncated":{"type":"boolean"},"installments":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserCheckoutAllowed":{"type":"boolean"},"dueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"outstandingCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","dueAt","key","outstandingCents","receivedCents"],"additionalProperties":false}},"invoiceNumber":{"type":"string"},"notes":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"reason":{"type":"string"},"reference":{"type":"string"}},"required":["amountCents","createdAt","currency","reason","reference"],"additionalProperties":false}},"plan":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"invoicePaymentPlans"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"originalTotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["_id","createdAt","creditedCents","currency","invoiceId","originalTotalCents","receivedCents","refundedCents"],"additionalProperties":false},"receipts":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"id":{"type":"string","x-convex-table":"invoicePaymentReceipts"},"kind":{"anyOf":[{"const":"payment"},{"const":"refund"}]},"method":{"anyOf":[{"const":"manual"},{"const":"stripe"}]}},"required":["amountCents","createdAt","currency","id","kind","method"],"additionalProperties":false}},"supplierName":{"type":"string"},"totals":{"type":"object","properties":{"adjustedTotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"customerCreditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"netReceivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"outstandingCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"settled":{"type":"boolean"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["adjustedTotalCents","creditedCents","customerCreditCents","netReceivedCents","outstandingCents","receivedCents","refundedCents","settled","totalCents"],"additionalProperties":false}},"required":["collections","historyTruncated","installments","invoiceNumber","notes","plan","receipts","supplierName","totals"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/account.statements.list":{"post":{"operationId":"execute_account_statements_list","summary":"List invoice statements","description":"Return paginated customer-safe payment-plan summaries for one owned supplier account.","tags":["account"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["memberId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"invoicePaymentPlans"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"originalTotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["_id","createdAt","creditedCents","currency","invoiceId","originalTotalCents","receivedCents","refundedCents"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["customer"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/ai.memory.list":{"post":{"operationId":"execute_ai_memory_list","summary":"List AI memory","description":"Return active memory entries for the caller's tenant, user principal, and requested scope.","tags":["ai"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scope":{"type":"string"}},"required":["scope"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/ai.memory.remember":{"post":{"operationId":"execute_ai_memory_remember","summary":"Remember AI context","description":"Store a memory entry for the caller and expire older entries beyond the scope limit.","tags":["ai"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxEntries":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"scope":{"type":"string"},"source":{"type":"string"},"value":{}},"required":["expiresAt","scope","source","value"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/ai.settings.get":{"post":{"operationId":"execute_ai_settings_get","summary":"Get AI settings","description":"Return AI purpose availability, destructive-tool policies, budget usage, and recent approval history.","tags":["ai"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["ai-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/approvals.tools.listPending":{"post":{"operationId":"execute_approvals_tools_listPending","summary":"List pending tool approvals","description":"Return pending, unexpired approvals with dry-run details, optionally filtered by conversation.","tags":["approvals"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sessionId":{"type":"string","x-convex-table":"agentSessions"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["ai-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/approvals.tools.listPendingPage":{"post":{"operationId":"execute_approvals_tools_listPendingPage","summary":"List pending approval page","description":"Return a cursor page of pending approvals, excluding expired requests.","tags":["approvals"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["ai-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.invoiceTemplate.get":{"post":{"operationId":"execute_billing_invoiceTemplate_get","summary":"Get invoice template settings","description":"Return the workspace's current invoice text, logo and tax-display preferences, with update time.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.invoiceTemplate.update":{"post":{"operationId":"execute_billing_invoiceTemplate_update","summary":"Save invoice template settings","description":"Save workspace invoice presentation settings and return the normalized settings and update time.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"footerText":{"type":"string"},"headerText":{"type":"string"},"paymentTerms":{"type":"string"},"showLogo":{"type":"boolean"},"taxDisplay":{"anyOf":[{"const":"itemized"},{"const":"summary"},{"const":"hidden"}]}},"required":["footerText","headerText","paymentTerms","showLogo","taxDisplay"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.invoices.list":{"post":{"operationId":"execute_billing_invoices_list","summary":"List billing invoices","description":"Return workspace invoice projections, tenant presentation/template details and pagination metadata.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.payments.list":{"post":{"operationId":"execute_billing_payments_list","summary":"List billing payments","description":"Return workspace payment and refund projections, recent webhook events and pagination metadata.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.subscription.activateTrial":{"post":{"operationId":"execute_billing_subscription_activateTrial","summary":"Activate a workspace trial","description":"Select an active subscription plan, reset the tenant to trialing, and return plan and tenant signup state.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planSlug":{"type":"string"}},"required":["planSlug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.subscription.get":{"post":{"operationId":"execute_billing_subscription_get","summary":"Get workspace subscription","description":"Return available/current plans, subscription state, Stripe configuration and workspace usage.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.subscription.getLifecycle":{"post":{"operationId":"execute_billing_subscription_getLifecycle","summary":"Get workspace subscription lifecycle","description":"Read the caller's Stripe subscription cancellation state and current period end, or return disconnected or unavailable status.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.subscriptionPayments.checkout":{"post":{"operationId":"execute_billing_subscriptionPayments_checkout","summary":"Open recurring checkout","description":"Return the existing hosted checkout URL for the person to confirm recurring billing.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"interval":{"anyOf":[{"const":"monthly"},{"const":"annual"}]},"planId":{"type":"string","x-convex-table":"subscriptionPlans"}},"required":["interval","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"paymentMode":{"const":"handoff"},"recurring":{"const":true},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["configured","paymentMode","recurring","url"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["subscription-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/billing.subscriptionPayments.get":{"post":{"operationId":"execute_billing_subscriptionPayments_get","summary":"Read recurring payment status","description":"Read persisted recurring billing status without collecting another payment.","tags":["billing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paymentMode":{"const":"handoff"},"recurring":{"const":true},"renewalAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"status":{"type":"string"}},"required":["paymentMode","recurring","renewalAt","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.attendees.update":{"post":{"operationId":"execute_bookings_attendees_update","summary":"Update booking attendees","description":"Update attendee count and notes and return the stored values.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attendeeNotes":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["attendeeCount","bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.availability.get":{"post":{"operationId":"execute_bookings_availability_get","summary":"Get space availability","description":"Return free intervals after schedules, blackouts, bookings, buffers, and connected availability are applied.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","spaceId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.bulk.cancel":{"post":{"operationId":"execute_bookings_bulk_cancel","summary":"Cancel multiple bookings","description":"Cancel bookings independently using cancellation policies and waitlist notifications, returning per-item results and cancellation counts.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingIds":{"type":"array","items":{"type":"string","x-convex-table":"bookings"}},"notes":{"type":"string"}},"required":["bookingIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive","financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.bulk.transition":{"post":{"operationId":"execute_bookings_bulk_transition","summary":"Transition multiple bookings (checked_in)","description":"Check in or mark bookings no-show in independent transactions and return per-item results.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingIds":{"type":"array","items":{"type":"string","x-convex-table":"bookings"}}},"required":["bookingIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.bulk.transition.noshow":{"post":{"operationId":"execute_bookings_bulk_transition_noshow","summary":"Transition multiple bookings (no_show)","description":"Check in or mark bookings no-show in independent transactions and return per-item results.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingIds":{"type":"array","items":{"type":"string","x-convex-table":"bookings"}}},"required":["bookingIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.checkInTokens.redeem":{"post":{"operationId":"execute_bookings_checkInTokens_redeem","summary":"Check in with a booking code","description":"Validate an unexpired signed booking code, check in the booking, and return the updated document.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"token":{"type":"string"}},"required":["token"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.create":{"post":{"operationId":"execute_bookings_create","summary":"Create a booking","description":"Create a priced confirmed booking with optional offer terms, approval, and idempotency, returning the booking document.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"idempotencyKey":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","spaceId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.displays.list":{"post":{"operationId":"execute_bookings_displays_list","summary":"List display sessions","description":"Return up to 100 workspace display sessions with resource, label, expiration, and revocation metadata.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"id":{"type":"string","x-convex-table":"displaySessions"},"label":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"revokedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["expiresAt","id","label","resourceId"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.eventAttendance.checkIn":{"post":{"operationId":"execute_bookings_eventAttendance_checkIn","summary":"Check in an event attendee","description":"Mark a confirmed registration attended and record resource arrival, returning the registration ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["registrationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"eventRegistrations"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.eventRegistrations.cancel":{"post":{"operationId":"execute_bookings_eventRegistrations_cancel","summary":"Cancel an event registration","description":"Cancel a workspace event registration, refresh its access and waitlist, and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["registrationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.eventRegistrations.create":{"post":{"operationId":"execute_bookings_eventRegistrations_create","summary":"Register a member for an event","description":"Register a workspace member and return an existing or new registration ID with confirmed, pending-payment, or waitlisted state.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","x-convex-table":"eventSessions"},"memberId":{"type":"string","x-convex-table":"members"},"requestKey":{"type":"string"}},"required":["eventId","memberId","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"eventRegistrations"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.eventRegistrations.list":{"post":{"operationId":"execute_bookings_eventRegistrations_list","summary":"List event registrations","description":"Return the registration roster for a workspace event.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","x-convex-table":"eventSessions"}},"required":["eventId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"eventRegistrations"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attendedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"eventId":{"type":"string","x-convex-table":"eventSessions"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"memberId":{"type":"string","x-convex-table":"members"},"paymentDueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentRevokedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"waitlisted"},{"const":"pending_payment"},{"const":"confirmed"},{"const":"attended"},{"const":"cancelled"},{"const":"expired"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","createdAt","currency","eventId","memberId","requestKey","status","tenantId","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.events.cancel":{"post":{"operationId":"execute_bookings_events_cancel","summary":"Cancel an event","description":"Cancel an event and its unsettled registrations, release inventory, and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","x-convex-table":"eventSessions"}},"required":["eventId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.events.create":{"post":{"operationId":"execute_bookings_events_create","summary":"Create an event","description":"Create a priced event session from published offer terms, reserve its resources, and return its ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"description":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"title":{"type":"string"}},"required":["capacity","channelId","description","endMs","expectedVersion","offerId","startMs","title"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"eventSessions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.events.list":{"post":{"operationId":"execute_bookings_events_list","summary":"List events","description":"Return a paginated list of workspace event sessions.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"eventSessions"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"description":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"open"},{"const":"cancelled"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","capacity","createdAt","currency","description","endMs","offerId","offerVersion","startMs","status","tenantId","title","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.exceptions.acknowledge":{"post":{"operationId":"execute_bookings_exceptions_acknowledge","summary":"Acknowledge a no-show exception","description":"Mark a workspace no-show exception reviewed and return acknowledged true.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"exceptionId":{"type":"string","x-convex-table":"bookingExceptions"}},"required":["exceptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.exceptions.list":{"post":{"operationId":"execute_bookings_exceptions_list","summary":"List booking exceptions","description":"Return up to 50 open booking exceptions with booking and turnover links.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["bookingReference"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycle.set":{"post":{"operationId":"execute_bookings_lifecycle_set","summary":"Set a booking lifecycle state (confirmed)","description":"Apply a legal lifecycle transition and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycle.set.cancelled":{"post":{"operationId":"execute_bookings_lifecycle_set_cancelled","summary":"Set a booking lifecycle state (cancelled)","description":"Apply a legal lifecycle transition and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycle.set.checkedin":{"post":{"operationId":"execute_bookings_lifecycle_set_checkedin","summary":"Set a booking lifecycle state (checked_in)","description":"Apply a legal lifecycle transition and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycle.set.completed":{"post":{"operationId":"execute_bookings_lifecycle_set_completed","summary":"Set a booking lifecycle state (completed)","description":"Apply a legal lifecycle transition and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycle.set.noshow":{"post":{"operationId":"execute_bookings_lifecycle_set_noshow","summary":"Set a booking lifecycle state (no_show)","description":"Apply a legal lifecycle transition and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycleCancellation.cancel":{"post":{"operationId":"execute_bookings_lifecycleCancellation_cancel","summary":"Cancel a booking lifecycle","description":"Apply the terminal canceled lifecycle state and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycleCheckIn.run":{"post":{"operationId":"execute_bookings_lifecycleCheckIn_run","summary":"Set a booking checked in","description":"Apply the checked-in lifecycle state within the permitted window and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycleCompletion.complete":{"post":{"operationId":"execute_bookings_lifecycleCompletion_complete","summary":"Complete a booking lifecycle","description":"Apply the completed lifecycle state and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.lifecycleNoShow.set":{"post":{"operationId":"execute_bookings_lifecycleNoShow_set","summary":"Set a booking no-show","description":"Apply the terminal no-show lifecycle state and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.list":{"post":{"operationId":"execute_bookings_list","summary":"List bookings","description":"Return filtered, cursor-paginated bookings with member, space, invoice summaries, and filter/count metadata.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pageSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"search":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"statuses":{"type":"array","items":{"anyOf":[{"const":"confirmed"},{"const":"checked_in"},{"const":"completed"},{"const":"no_show"},{"const":"cancelled"}]}}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-read","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.manual.create":{"post":{"operationId":"execute_bookings_manual_create","summary":"Create a manual booking","description":"Create a member or guest booking with attendance and payment mode, returning the booking ID, amount, currency, and payment setup state.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attendeeNotes":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"guestEmail":{"type":"string"},"guestName":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"notes":{"type":"string"},"paymentMode":{"anyOf":[{"const":"paid_external"},{"const":"send_payment_link"},{"const":"no_charge"}]},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["attendeeCount","endMs","paymentMode","spaceId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.manualCheckIn.run":{"post":{"operationId":"execute_bookings_manualCheckIn_run","summary":"Check in a booking manually","description":"Check in a workspace booking and record its arrival, returning the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.operatorCheckIn.run":{"post":{"operationId":"execute_bookings_operatorCheckIn_run","summary":"Check in a booking","description":"Check in a workspace booking, record presence and an audit event, and return the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.operatorCompletion.complete":{"post":{"operationId":"execute_bookings_operatorCompletion_complete","summary":"Complete a booking","description":"Complete a checked-in booking, enqueue cleaning, record an audit event, and return the booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.operatorNoShow.set":{"post":{"operationId":"execute_bookings_operatorNoShow_set","summary":"Mark a booking as a no-show","description":"Apply the terminal no-show state and record an operator audit event, returning the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.operatorReschedule.run":{"post":{"operationId":"execute_bookings_operatorReschedule_run","summary":"Reschedule a booking","description":"Reschedule a confirmed booking with availability and price checks, returning the updated booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["bookingId","endMs","spaceId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.passes.list":{"post":{"operationId":"execute_bookings_passes_list","summary":"List passes","description":"Return paginated workspace day passes, excluding rental and service purchases.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"dayPasses"},"allocationStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"bufferAfterMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bufferBeforeMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"fulfilledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"inventoryAllocationVersion":{"const":1},"memberId":{"type":"string","x-convex-table":"members"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentDueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pricingUnit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]},"purchaseKind":{"anyOf":[{"const":"pass"},{"const":"rental"},{"const":"service"}]},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"returnedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"pending_payment"},{"const":"active"},{"const":"redeemed"},{"const":"revoked"},{"const":"expired"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"unitPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","components","createdAt","currency","memberId","name","offerId","offerVersion","paymentDueAt","requestKey","resourceId","status","tenantId","updatedAt","validFrom","validUntil"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.passes.purchase":{"post":{"operationId":"execute_bookings_passes_purchase","summary":"Purchase a pass for a member","description":"Create or replay a pass purchase, reserve inventory, and return the pass ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"offerId":{"type":"string","x-convex-table":"offers"},"requestKey":{"type":"string"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","memberId","offerId","requestKey","validFrom"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"dayPasses"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.passes.redeem":{"post":{"operationId":"execute_bookings_passes_redeem","summary":"Redeem a pass","description":"Redeem an active pass, record resource presence and benefit usage, and return the redemption ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"passId":{"type":"string","x-convex-table":"dayPasses"},"requestKey":{"type":"string"}},"required":["passId","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"passRedemptions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.policyCancellation.cancel":{"post":{"operationId":"execute_bookings_policyCancellation_cancel","summary":"Cancel a booking with its refund policy","description":"Cancel a booking, notify an eligible waitlist entry, and return the applied policy and refund state.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"notes":{"type":"string"},"refundOverrideCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.presence.arrive":{"post":{"operationId":"execute_bookings_presence_arrive","summary":"Record a member arrival","description":"Record staff-confirmed member presence at a property and return the presence-session ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"propertyId":{"type":"string","x-convex-table":"properties"},"requestKey":{"type":"string"}},"required":["memberId","propertyId","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"presenceSessions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.presence.depart":{"post":{"operationId":"execute_bookings_presence_depart","summary":"Record a departure","description":"Record departure for a workspace presence session and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"presenceId":{"type":"string","x-convex-table":"presenceSessions"}},"required":["presenceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.presence.list":{"post":{"operationId":"execute_bookings_presence_list","summary":"List property presence","description":"Return paginated presence sessions with names and present, departed, or unknown observed state.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["paginationOpts","propertyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"presenceSessions"},"arrivedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"departedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"displayName":{"type":"string"},"evidence":{"anyOf":[{"const":"staff"},{"const":"self_reported"}]},"freshUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"observedState":{"anyOf":[{"const":"present"},{"const":"departed"},{"const":"unknown"}]},"propertyId":{"type":"string","x-convex-table":"properties"},"recordedBy":{"type":"string","x-convex-table":"users"},"resourceId":{"type":"string","x-convex-table":"resources"},"source":{"anyOf":[{"type":"object","properties":{"kind":{"const":"visitor"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"kind":{"const":"booking"}},"required":["bookingId","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"pass"},"passId":{"type":"string","x-convex-table":"dayPasses"}},"required":["kind","passId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"event"},"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["kind","registrationId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"memberId":{"type":"string","x-convex-table":"members"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["kind","memberId","subscriptionId"],"additionalProperties":false}]},"sourceKey":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","arrivedAt","createdAt","displayName","evidence","freshUntil","observedState","propertyId","source","sourceKey","tenantId","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.rawSeries.create":{"post":{"operationId":"execute_bookings_rawSeries_create","summary":"Create a booking series","description":"Create a recurrence series and priced bookings, returning confirmed or skipped outcomes per occurrence.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"count":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"durationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"frequency":{"anyOf":[{"const":"daily"},{"const":"weekly"},{"const":"monthly"}]},"idempotencyKey":{"type":"string"},"interval":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startsAtMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"},"untilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["count","durationMinutes","frequency","interval","spaceId","startsAtMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.recurring.create":{"post":{"operationId":"execute_bookings_recurring_create","summary":"Create recurring bookings","description":"Create a series of priced member or guest bookings, returning the series ID, generated count, and per-occurrence outcomes.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"count":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"durationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"frequency":{"anyOf":[{"const":"daily"},{"const":"weekly"},{"const":"monthly"}]},"interval":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startsAtMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"},"untilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["count","durationMinutes","frequency","interval","spaceId","startsAtMs","memberId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.recurring.createAnonymous":{"post":{"operationId":"execute_bookings_recurring_createAnonymous","summary":"Create recurring bookings","description":"Create a series of priced member or guest bookings, returning the series ID, generated count, and per-occurrence outcomes.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"count":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"durationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"frequency":{"anyOf":[{"const":"daily"},{"const":"weekly"},{"const":"monthly"}]},"interval":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startsAtMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"},"untilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["count","durationMinutes","frequency","interval","spaceId","startsAtMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.recurring.createGuest":{"post":{"operationId":"execute_bookings_recurring_createGuest","summary":"Create recurring bookings","description":"Create a series of priced member or guest bookings, returning the series ID, generated count, and per-occurrence outcomes.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"count":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"durationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"frequency":{"anyOf":[{"const":"daily"},{"const":"weekly"},{"const":"monthly"}]},"guestEmail":{"type":"string"},"guestName":{"type":"string"},"interval":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startsAtMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"},"untilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["count","durationMinutes","frequency","interval","spaceId","startsAtMs","guestEmail"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","member-create","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.requests.create":{"post":{"operationId":"execute_bookings_requests_create","summary":"Create a booking request","description":"Create or replay an approval request with quoted terms and expiration, returning its ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","memberId","note","offerId","offerVersion","requestKey","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"bookingRequests"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.requests.decide":{"post":{"operationId":"execute_bookings_requests_decide","summary":"Decide a booking request","description":"Approve or decline a request, reserve or release resources, and return its ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"decision":{"anyOf":[{"const":"approve"},{"const":"decline"}]},"reason":{"type":"string"},"requestId":{"type":"string","x-convex-table":"bookingRequests"}},"required":["decision","reason","requestId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"bookingRequests"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.requests.list":{"post":{"operationId":"execute_bookings_requests_list","summary":"List booking requests","description":"Return paginated workspace requests with quoted terms and decisions.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"bookingRequests"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"apiReviewedTerms":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"},"bufferMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"decidedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"decidedBy":{"type":"string","x-convex-table":"users"},"decidedByApiKeyRef":{"type":"string"},"decisionReason":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"purchaseId":{"type":"string","x-convex-table":"dayPasses"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"requestedByApiKeyRef":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"approved"},{"const":"declined"},{"const":"expired"},{"const":"consumed"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","bufferMs","channelId","components","createdAt","currency","endMs","expiresAt","memberId","note","offerId","offerVersion","requestKey","resourceId","startMs","status","tenantId","title","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.resourcePurchases.cancel":{"post":{"operationId":"execute_bookings_resourcePurchases_cancel","summary":"Cancel a resource purchase","description":"Cancel an unpaid or free rental/service purchase, release allocations, refresh access, and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purchaseId":{"type":"string","x-convex-table":"dayPasses"}},"required":["purchaseId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.resourcePurchases.complete":{"post":{"operationId":"execute_bookings_resourcePurchases_complete","summary":"Complete a resource purchase","description":"Record return/completion of a fulfilled purchase, release allocations, refresh access, and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purchaseId":{"type":"string","x-convex-table":"dayPasses"}},"required":["purchaseId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.resourcePurchases.fulfill":{"post":{"operationId":"execute_bookings_resourcePurchases_fulfill","summary":"Fulfill a resource purchase","description":"Mark an active rental/service purchase fulfilled during its validity window and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purchaseId":{"type":"string","x-convex-table":"dayPasses"}},"required":["purchaseId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.resourcePurchases.list":{"post":{"operationId":"execute_bookings_resourcePurchases_list","summary":"List resource purchases","description":"Return paginated workspace rental and service purchases stored in dayPasses.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"dayPasses"},"allocationStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"bufferAfterMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bufferBeforeMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"fulfilledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"inventoryAllocationVersion":{"const":1},"memberId":{"type":"string","x-convex-table":"members"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentDueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pricingUnit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]},"purchaseKind":{"anyOf":[{"const":"pass"},{"const":"rental"},{"const":"service"}]},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"returnedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"pending_payment"},{"const":"active"},{"const":"redeemed"},{"const":"revoked"},{"const":"expired"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"unitPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","components","createdAt","currency","memberId","name","offerId","offerVersion","paymentDueAt","requestKey","resourceId","status","tenantId","updatedAt","validFrom","validUntil"],"additionalProperties":false}}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.resourcePurchases.purchase":{"post":{"operationId":"execute_bookings_resourcePurchases_purchase","summary":"Purchase a rental or service","description":"Create or replay a priced rental/service purchase and reserve inventory, returning its ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","memberId","offerId","quantity","requestKey","validFrom","validUntil"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"dayPasses"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.resourcePurchases.quote":{"post":{"operationId":"execute_bookings_resourcePurchases_quote","summary":"Quote a rental or service","description":"Return amount, currency, units, quantity, and tax snapshot without creating a purchase.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","memberId","offerId","quantity","validFrom","validUntil"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"unit":{"type":"string"},"units":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","currency","quantity","tax","unit","units"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.series.cancel":{"post":{"operationId":"execute_bookings_series_cancel","summary":"Cancel a recurring series","description":"Cancel a series and, by default, its future confirmed occurrences, returning the series ID and occurrence count.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"seriesId":{"type":"string","x-convex-table":"bookingSeries"}},"required":["seriesId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive","financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.series.list":{"post":{"operationId":"execute_bookings_series_list","summary":"List recurring series","description":"Return recurring series with recurrence settings, occurrence counts, and up to five upcoming occurrences.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"anyOf":[{"const":"active"},{"const":"completed"},{"const":"cancelled"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-read","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.series.stop":{"post":{"operationId":"execute_bookings_series_stop","summary":"Stop a booking series without cancelling occurrences","description":"Cancel a series and, by default, its future confirmed occurrences, returning the series ID and occurrence count.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"seriesId":{"type":"string","x-convex-table":"bookingSeries"}},"required":["seriesId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.series.update":{"post":{"operationId":"execute_bookings_series_update","summary":"Update a recurring pattern","description":"Reconcile a new recurrence pattern and return the series and created, canceled, preserved, unchanged, and conflicting occurrence counts.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"count":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"durationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"frequency":{"anyOf":[{"const":"daily"},{"const":"weekly"},{"const":"monthly"}]},"interval":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"seriesId":{"type":"string","x-convex-table":"bookingSeries"},"startsAtMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"},"untilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["durationMinutes","frequency","interval","seriesId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive","financial"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel","booking-create","booking-read","booking-update","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.timeline.list":{"post":{"operationId":"execute_bookings_timeline_list","summary":"List booking timeline entries","description":"Return paginated audit-derived timeline entries with a continuation cursor.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"cursor":{"type":"string"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"id":{"type":"string"},"label":{"type":"string"},"metadata":{}},"required":["action","createdAt","id","label"],"additionalProperties":false}}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-read","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.turnover.complete":{"post":{"operationId":"execute_bookings_turnover_complete","summary":"Complete a booking and schedule cleaning","description":"Complete a checked-in booking, enqueue a cleaning task, and return the completed booking.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.visitors.checkIn":{"post":{"operationId":"execute_bookings_visitors_checkIn","summary":"Check in a visitor","description":"Record staff-confirmed visitor arrival and return the presence-session ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string","x-convex-table":"visitorInvitations"}},"required":["invitationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"presenceSessions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.visitors.checkOut":{"post":{"operationId":"execute_bookings_visitors_checkOut","summary":"Check out a visitor","description":"Record departure, update the invitation, refresh access, and return null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string","x-convex-table":"visitorInvitations"}},"required":["invitationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.visitors.list":{"post":{"operationId":"execute_bookings_visitors_list","summary":"List visitor invitations","description":"Return paginated workspace visitor invitations without bearer-token hashes.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"visitorInvitations"},"arrivedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"deliveryId":{"type":"string"},"deliveryLeaseUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deliveryStatus":{"anyOf":[{"const":"not_sent"},{"const":"sending"},{"const":"sent"},{"const":"failed"},{"const":"not_configured"}]},"departedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"hostUserId":{"type":"string","x-convex-table":"users"},"propertyId":{"type":"string","x-convex-table":"properties"},"requestKey":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"invited"},{"const":"arrived"},{"const":"departed"},{"const":"revoked"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"visitorEmail":{"type":"string"},"visitorName":{"type":"string"}},"required":["_creationTime","_id","createdAt","createdBy","deliveryStatus","endMs","hostUserId","propertyId","requestKey","startMs","status","tenantId","updatedAt","visitorEmail","visitorName"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.visitors.revoke":{"post":{"operationId":"execute_bookings_visitors_revoke","summary":"Revoke a visitor invitation","description":"Revoke a workspace visitor invitation and refresh physical access, returning null.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string","x-convex-table":"visitorInvitations"}},"required":["invitationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.waitlist.create":{"post":{"operationId":"execute_bookings_waitlist_create","summary":"Add a member to the waitlist","description":"Add a workspace member's requested space interval and return the waitlist ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","memberId","spaceId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.waitlist.list":{"post":{"operationId":"execute_bookings_waitlist_list","summary":"List waitlist entries","description":"Return waitlist entries with contact, space, requested interval, status, and current availability.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"anyOf":[{"const":"waiting"},{"const":"notified"},{"const":"booked"},{"const":"expired"},{"const":"cancelled"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-read","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.waitlist.promote":{"post":{"operationId":"execute_bookings_waitlist_promote","summary":"Promote a waitlist entry","description":"Create a booking for an available waiting or notified entry and return booking and waitlist IDs.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notes":{"type":"string"},"waitlistId":{"type":"string","x-convex-table":"waitlist"}},"required":["waitlistId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.waitlist.remove":{"post":{"operationId":"execute_bookings_waitlist_remove","summary":"Remove a waitlist entry","description":"Soft-delete and cancel a workspace waitlist entry, returning its ID and removed true.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notes":{"type":"string"},"waitlistId":{"type":"string","x-convex-table":"waitlist"}},"required":["waitlistId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel"],"x-keyvra-conditional-permissions":[]}},"/operations/bookings.waitlistCancellation.cancel":{"post":{"operationId":"execute_bookings_waitlistCancellation_cancel","summary":"Cancel a booking and notify its waitlist","description":"Cancel a booking and notify the first eligible waiting entry, returning the booking and notified entry ID.","tags":["bookings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":["financial"],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/calendar.bookings.create":{"post":{"operationId":"execute_calendar_bookings_create","summary":"Create a calendar booking","description":"Create a confirmed member or guest booking and return the booking document.","tags":["calendar"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","spaceId","startMs","memberId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/calendar.bookings.createGuest":{"post":{"operationId":"execute_calendar_bookings_createGuest","summary":"Create a calendar booking","description":"Create a confirmed member or guest booking and return the booking document.","tags":["calendar"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"guestEmail":{"type":"string"},"guestName":{"type":"string"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","spaceId","startMs","guestEmail"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-create","booking-read","member-create","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/calendar.bookings.reschedule":{"post":{"operationId":"execute_calendar_bookings_reschedule","summary":"Reschedule a calendar booking","description":"Move a confirmed booking to an available space and interval, returning the updated booking.","tags":["calendar"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["bookingId","endMs","spaceId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId","shortId","bookingReference","bookingRef"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-update","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/calendar.feed.get":{"post":{"operationId":"execute_calendar_feed_get","summary":"Get the calendar feed","description":"Return calendar resources, filters, bookings, blackouts, and maintenance blocks for a date range.","tags":["calendar"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"floorIds":{"type":"array","items":{"type":"string"}},"propertyIds":{"type":"array","items":{"type":"string"}},"spaceIds":{"type":"array","items":{"type":"string"}},"spaceTypes":{"type":"array","items":{"type":"string"}},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.audiences.listOptions":{"post":{"operationId":"execute_communications_audiences_listOptions","summary":"List audience options","description":"Return tenant groups, companies, plans, locations, and member names for communication targeting.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companies":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"groups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"locations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"plans":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["companies","groups","locations","members","plans","truncated"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.audiences.preview":{"post":{"operationId":"execute_communications_audiences_preview","summary":"Preview communication audience","description":"Return eligible and excluded recipient counts plus a sample of recipient names.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purpose":{"anyOf":[{"const":"newsletter"},{"const":"community"},{"const":"service"}]},"segment":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"anyOf":[{"const":"all"},{"const":"group"},{"const":"company"},{"const":"plan"},{"const":"location"},{"const":"selected"}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"planId":{"type":"string","x-convex-table":"membershipPlans"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["kind"],"additionalProperties":false}},"required":["purpose","segment"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eligible":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"excluded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"names":{"type":"array","items":{"type":"string"}}},"required":["eligible","excluded","names"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.automationTemplates.list":{"post":{"operationId":"execute_communications_automationTemplates_list","summary":"List reminder templates","description":"Return the tenant's configured booking, invoice, membership, payment-failure, and event reminder templates.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"automationTemplateSettings"},"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"enabled":{"type":"boolean"},"kind":{"anyOf":[{"const":"booking_reminder"},{"const":"invoice_reminder"},{"const":"membership_renewal"},{"const":"failed_payment"},{"const":"event_reminder"}]},"lastRunAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastRunStatus":{"anyOf":[{"const":"ok"},{"const":"bounded"}]},"offsetMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subjectEn":{"type":"string"},"subjectFr":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedBy":{"type":"string","x-convex-table":"users"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","bodyEn","bodyFr","createdAt","enabled","kind","offsetMinutes","subjectEn","subjectFr","tenantId","updatedAt","updatedBy","version"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.automations.listDeliveries":{"post":{"operationId":"execute_communications_automations_listDeliveries","summary":"List reminder deliveries","description":"Return a cursor page of delivery status, recipient, attempt, and provider information for an automation.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"automationId":{"type":"string","x-convex-table":"automationTemplateSettings"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["automationId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string"},"attempts":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deliveryId":{"anyOf":[{"type":"string","x-convex-table":"communicationDeliveries"},{"type":"null"}]},"providerMessageId":{"anyOf":[{"type":"string"},{"type":"null"}]},"recipientEmail":{"type":"string"},"status":{"anyOf":[{"const":"queued"},{"const":"sending"},{"const":"accepted"},{"const":"failed"},{"const":"skipped"},{"const":"cancelled"}]}},"required":["_id","attempts","deliveryId","providerMessageId","recipientEmail","status"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.campaigns.cancel":{"post":{"operationId":"execute_communications_campaigns_cancel","summary":"Cancel communication campaign","description":"Cancel an unfinished campaign and its queued deliveries for the current delivery version.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","x-convex-table":"communicationCampaigns"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["campaignId","expectedVersion"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.campaigns.get":{"post":{"operationId":"execute_communications_campaigns_get","summary":"Get communication campaign","description":"Return a tenant communication campaign's content, audience, lifecycle, and version.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","x-convex-table":"communicationCampaigns"}},"required":["campaignId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"communicationCampaigns"},"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"deliveryVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"purpose":{"anyOf":[{"const":"newsletter"},{"const":"community"},{"const":"service"}]},"reviewedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reviewedBy":{"type":"string","x-convex-table":"users"},"reviewedMemberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"segment":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"anyOf":[{"const":"all"},{"const":"group"},{"const":"company"},{"const":"plan"},{"const":"location"},{"const":"selected"}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"planId":{"type":"string","x-convex-table":"membershipPlans"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["kind"],"additionalProperties":false},"status":{"anyOf":[{"const":"draft"},{"const":"reviewed"},{"const":"scheduled"},{"const":"completed"},{"const":"cancelled"}]},"subjectEn":{"type":"string"},"subjectFr":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","bodyEn","bodyFr","createdAt","createdBy","name","purpose","reviewedMemberIds","segment","status","subjectEn","subjectFr","tenantId","updatedAt","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[["community-manage"],["cms-read"]],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.campaigns.list":{"post":{"operationId":"execute_communications_campaigns_list","summary":"List communication campaigns","description":"Return a cursor page of tenant communication campaigns in descending order.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"communicationCampaigns"},"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"deliveryVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"purpose":{"anyOf":[{"const":"newsletter"},{"const":"community"},{"const":"service"}]},"reviewedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reviewedBy":{"type":"string","x-convex-table":"users"},"reviewedMemberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"scheduledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"segment":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"anyOf":[{"const":"all"},{"const":"group"},{"const":"company"},{"const":"plan"},{"const":"location"},{"const":"selected"}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"planId":{"type":"string","x-convex-table":"membershipPlans"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["kind"],"additionalProperties":false},"status":{"anyOf":[{"const":"draft"},{"const":"reviewed"},{"const":"scheduled"},{"const":"completed"},{"const":"cancelled"}]},"subjectEn":{"type":"string"},"subjectFr":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","bodyEn","bodyFr","createdAt","createdBy","name","purpose","reviewedMemberIds","segment","status","subjectEn","subjectFr","tenantId","updatedAt","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[["community-manage"],["cms-read"]],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.campaigns.listRecipientOutcomes":{"post":{"operationId":"execute_communications_campaigns_listRecipientOutcomes","summary":"List campaign recipient outcomes","description":"Return a cursor page of recipient delivery statuses, attempts, errors, and provider message IDs.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","x-convex-table":"communicationCampaigns"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["campaignId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"attempts":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"email":{"type":"string"},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"type":"string","x-convex-table":"communicationDeliveries"},"isTest":{"type":"boolean"},"providerMessageId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"const":"queued"},{"const":"sending"},{"const":"accepted"},{"const":"failed"},{"const":"skipped"},{"const":"cancelled"}]}},"required":["attempts","email","errorCode","id","isTest","providerMessageId","status"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[["community-manage"],["cms-read"]],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.campaigns.review":{"post":{"operationId":"execute_communications_campaigns_review","summary":"Review communication campaign","description":"Snapshot a draft's currently eligible audience, mark it reviewed, and return its new version and recipient count.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"campaignId":{"type":"string","x-convex-table":"communicationCampaigns"},"confirmed":{"const":true},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["campaignId","confirmed","expectedVersion"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eligible":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["eligible","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.campaigns.save":{"post":{"operationId":"execute_communications_campaigns_save","summary":"Save communication campaign","description":"Create or edit a bilingual campaign draft and return its ID.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"campaignId":{"type":"string","x-convex-table":"communicationCampaigns"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"purpose":{"anyOf":[{"const":"newsletter"},{"const":"community"},{"const":"service"}]},"segment":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"anyOf":[{"const":"all"},{"const":"group"},{"const":"company"},{"const":"plan"},{"const":"location"},{"const":"selected"}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"planId":{"type":"string","x-convex-table":"membershipPlans"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["kind"],"additionalProperties":false},"subjectEn":{"type":"string"},"subjectFr":{"type":"string"}},"required":["bodyEn","bodyFr","name","purpose","segment","subjectEn","subjectFr"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"communicationCampaigns"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.deliveries.retry":{"post":{"operationId":"execute_communications_deliveries_retry","summary":"Retry failed communication","description":"Requeue an eligible failed delivery and schedule dispatch.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmed":{"const":true},"deliveryId":{"type":"string","x-convex-table":"communicationDeliveries"}},"required":["confirmed","deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.documents.download":{"post":{"operationId":"execute_communications_documents_download","summary":"Download a community document","description":"Open the browser flow to download a community document.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","x-convex-table":"communityPosts"}},"required":["postId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[["community-manage"],["cms-read"]],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.documents.upload":{"post":{"operationId":"execute_communications_documents_upload","summary":"Upload a community document","description":"Open the browser flow to upload a community document.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":120},"contentType":{"enum":["application/pdf","text/plain"]},"contentBase64":{"type":"string","minLength":4,"maxLength":174764}},"required":["fileName","contentType","contentBase64"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.rules.get":{"post":{"operationId":"execute_communications_rules_get","summary":"Get automation rule","description":"Return a tenant-owned automation rule document.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ruleId":{"type":"string","x-convex-table":"automationRules"}},"required":["ruleId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"automationRules"},"action":{"anyOf":[{"type":"object","properties":{"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"channel":{"const":"email"},"kind":{"const":"send_communication"},"purpose":{"anyOf":[{"const":"newsletter"},{"const":"community"},{"const":"service"}]},"subjectEn":{"type":"string"},"subjectFr":{"type":"string"}},"required":["bodyEn","bodyFr","channel","kind","purpose","subjectEn","subjectFr"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"create_sales_activity"},"note":{"type":"string"}},"required":["kind","note"],"additionalProperties":false},{"type":"object","properties":{"description":{"type":"string"},"kind":{"const":"create_task"},"priority":{"anyOf":[{"const":"low"},{"const":"medium"},{"const":"high"}]},"taskKind":{"const":"maintenance"},"title":{"type":"string"}},"required":["kind","priority","taskKind","title"],"additionalProperties":false},{"type":"object","properties":{"body":{"type":"string"},"kind":{"const":"propose_agent_action"},"recipientUserId":{"type":"string","x-convex-table":"users"},"title":{"type":"string"},"tool":{"anyOf":[{"const":"send-member-message"}]}},"required":["body","kind","recipientUserId","title","tool"],"additionalProperties":false}]},"activatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"archivedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"anyOf":[{"const":"bookingSource"},{"const":"bookingPriceCents"},{"const":"bookingAttendeeCount"},{"const":"bookingDurationMinutes"},{"const":"leadSource"},{"const":"leadStage"},{"const":"quoteTotalCents"},{"const":"quoteTargetKind"},{"const":"quoteSalesChannel"},{"const":"planPriceCents"},{"const":"subscriptionStatus"},{"const":"arrivalEvidence"}]},"op":{"anyOf":[{"const":"eq"},{"const":"neq"},{"const":"gte"},{"const":"lte"},{"const":"in"}]},"value":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"array","items":{"type":"string"}}]}},"required":["field","op","value"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"enabled":{"type":"boolean"},"killSwitchAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastSweepAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastSweepStatus":{"anyOf":[{"const":"ok"},{"const":"bounded"}]},"maxRunsPerDay":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"runWindowCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"runWindowStartedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tenantId":{"type":"string","x-convex-table":"tenants"},"trigger":{"anyOf":[{"type":"object","properties":{"kind":{"const":"booking.confirmed"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"lead.created"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"afterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"const":"quote.sent_unanswered"}},"required":["afterDays","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership.payment_failed"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"visitor.checked_in"}},"required":["kind"],"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedBy":{"type":"string","x-convex-table":"users"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","action","activatedAt","conditions","createdAt","createdBy","enabled","maxRunsPerDay","name","tenantId","trigger","updatedAt","updatedBy","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.rules.list":{"post":{"operationId":"execute_communications_rules_list","summary":"List automation rules","description":"Return nonarchived tenant rules and the workspace kill-switch state.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"automationRules"},"action":{"anyOf":[{"type":"object","properties":{"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"channel":{"const":"email"},"kind":{"const":"send_communication"},"purpose":{"anyOf":[{"const":"newsletter"},{"const":"community"},{"const":"service"}]},"subjectEn":{"type":"string"},"subjectFr":{"type":"string"}},"required":["bodyEn","bodyFr","channel","kind","purpose","subjectEn","subjectFr"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"create_sales_activity"},"note":{"type":"string"}},"required":["kind","note"],"additionalProperties":false},{"type":"object","properties":{"description":{"type":"string"},"kind":{"const":"create_task"},"priority":{"anyOf":[{"const":"low"},{"const":"medium"},{"const":"high"}]},"taskKind":{"const":"maintenance"},"title":{"type":"string"}},"required":["kind","priority","taskKind","title"],"additionalProperties":false},{"type":"object","properties":{"body":{"type":"string"},"kind":{"const":"propose_agent_action"},"recipientUserId":{"type":"string","x-convex-table":"users"},"title":{"type":"string"},"tool":{"anyOf":[{"const":"send-member-message"}]}},"required":["body","kind","recipientUserId","title","tool"],"additionalProperties":false}]},"activatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"archivedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"anyOf":[{"const":"bookingSource"},{"const":"bookingPriceCents"},{"const":"bookingAttendeeCount"},{"const":"bookingDurationMinutes"},{"const":"leadSource"},{"const":"leadStage"},{"const":"quoteTotalCents"},{"const":"quoteTargetKind"},{"const":"quoteSalesChannel"},{"const":"planPriceCents"},{"const":"subscriptionStatus"},{"const":"arrivalEvidence"}]},"op":{"anyOf":[{"const":"eq"},{"const":"neq"},{"const":"gte"},{"const":"lte"},{"const":"in"}]},"value":{"anyOf":[{"type":"string"},{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"array","items":{"type":"string"}}]}},"required":["field","op","value"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"enabled":{"type":"boolean"},"killSwitchAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastSweepAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastSweepStatus":{"anyOf":[{"const":"ok"},{"const":"bounded"}]},"maxRunsPerDay":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"runWindowCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"runWindowStartedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tenantId":{"type":"string","x-convex-table":"tenants"},"trigger":{"anyOf":[{"type":"object","properties":{"kind":{"const":"booking.confirmed"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"lead.created"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"afterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"const":"quote.sent_unanswered"}},"required":["afterDays","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership.payment_failed"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"visitor.checked_in"}},"required":["kind"],"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedBy":{"type":"string","x-convex-table":"users"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","action","activatedAt","conditions","createdAt","createdBy","enabled","maxRunsPerDay","name","tenantId","trigger","updatedAt","updatedBy","version"],"additionalProperties":false}},"workspaceKillSwitchAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["rules","workspaceKillSwitchAt"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.rules.listRecipients":{"post":{"operationId":"execute_communications_rules_listRecipients","summary":"List rule proposal recipients","description":"Return tenant staff IDs and names available as recipients of proposed agent actions.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"users"},"name":{"type":"string"}},"required":["_id","name"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/communications.rules.listRuns":{"post":{"operationId":"execute_communications_rules_listRuns","summary":"List automation rule runs","description":"Return rule-run history with status, attempts, errors, and current downstream delivery or approval outcomes.","tags":["communications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"ruleId":{"type":"string","x-convex-table":"automationRules"}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"automationRuns"},"attempts":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"effect":{"anyOf":[{"type":"null"},{"type":"object","properties":{"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"kind":{"const":"delivery"},"status":{"anyOf":[{"const":"queued"},{"const":"sending"},{"const":"accepted"},{"const":"failed"},{"const":"skipped"},{"const":"cancelled"}]}},"required":["errorCode","kind","status"],"additionalProperties":false},{"type":"object","properties":{"executed":{"type":"boolean"},"kind":{"const":"approval"},"status":{"anyOf":[{"const":"pending"},{"const":"approved"},{"const":"rejected"},{"const":"expired"}]}},"required":["executed","kind","status"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"sales_activity"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"task"}},"required":["kind"],"additionalProperties":false}]},"errorCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"ruleId":{"type":"string","x-convex-table":"automationRules"},"ruleName":{"anyOf":[{"type":"string"},{"type":"null"}]},"ruleVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"running"},{"const":"succeeded"},{"const":"skipped"},{"const":"failed"},{"const":"cancelled"}]},"triggerKind":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_id","attempts","createdAt","effect","errorCode","ruleId","ruleName","ruleVersion","status","triggerKind","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/community.documents.delete":{"post":{"operationId":"execute_community_documents_delete","summary":"Delete community document","description":"Detach an eligible community attachment and permanently delete its file and document record.","tags":["community"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"documentId":{"type":"string","x-convex-table":"communityDocuments"}},"required":["documentId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/community.posts.list":{"post":{"operationId":"execute_community_posts_list","summary":"List community posts","description":"Return a cursor page of tenant community posts across publication states.","tags":["community"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"communityPosts"},"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"documentId":{"type":"string","x-convex-table":"communityDocuments"},"publishedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"segment":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"anyOf":[{"const":"all"},{"const":"group"},{"const":"company"},{"const":"plan"},{"const":"location"},{"const":"selected"}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"planId":{"type":"string","x-convex-table":"membershipPlans"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["kind"],"additionalProperties":false},"status":{"anyOf":[{"const":"draft"},{"const":"published"},{"const":"withdrawn"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"titleEn":{"type":"string"},"titleFr":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","bodyEn","bodyFr","createdAt","createdBy","segment","status","tenantId","titleEn","titleFr","updatedAt","version"],"additionalProperties":false}}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[["community-manage"],["cms-read"]],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/community.posts.publish":{"post":{"operationId":"execute_community_posts_publish","summary":"Publish community post","description":"Publish a validated community post for its selected member audience.","tags":["community"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmed":{"type":"boolean"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"postId":{"type":"string","x-convex-table":"communityPosts"}},"required":["confirmed","expectedVersion","postId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/community.posts.save":{"post":{"operationId":"execute_community_posts_save","summary":"Save community post","description":"Create or edit a bilingual community draft and associate an optional document.","tags":["community"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"documentId":{"type":"string","x-convex-table":"communityDocuments"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"postId":{"type":"string","x-convex-table":"communityPosts"},"segment":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"anyOf":[{"const":"all"},{"const":"group"},{"const":"company"},{"const":"plan"},{"const":"location"},{"const":"selected"}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"planId":{"type":"string","x-convex-table":"membershipPlans"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["kind"],"additionalProperties":false},"titleEn":{"type":"string"},"titleFr":{"type":"string"}},"required":["bodyEn","bodyFr","segment","titleEn","titleFr"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"communityPosts"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/community.posts.unpublish":{"post":{"operationId":"execute_community_posts_unpublish","summary":"Withdraw community post","description":"Remove a community post from the published member feed and increment its version.","tags":["community"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"postId":{"type":"string","x-convex-table":"communityPosts"}},"required":["expectedVersion","postId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["community-manage","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.approve":{"post":{"operationId":"execute_insights_opportunities_approve","summary":"Approve an inventory opportunity","description":"Create a draft offer from a reviewed opportunity, mark it approved and return the offer ID.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"opportunityId":{"type":"string","x-convex-table":"inventoryOpportunities"}},"required":["expectedVersion","opportunityId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"offers"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-publish","space-read","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.defer":{"post":{"operationId":"execute_insights_opportunities_defer","summary":"Defer an inventory opportunity","description":"Dismiss or snooze a nonpublished opportunity, clear its approval and return null.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"anyOf":[{"const":"dismiss"},{"const":"snooze"}]},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"opportunityId":{"type":"string","x-convex-table":"inventoryOpportunities"},"untilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["action","expectedVersion","opportunityId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.generate":{"post":{"operationId":"execute_insights_opportunities_generate","summary":"Generate inventory opportunities","description":"Create proposed offer windows from availability and aggregate search demand; return created/skipped counts and evidence status.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","offerId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"created":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"insufficientData":{"type":"boolean"},"skipped":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["created","insufficientData","skipped"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read","space-update","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.list":{"post":{"operationId":"execute_insights_opportunities_list","summary":"List inventory opportunities","description":"Return a paginated tenant opportunity list, newest first.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"inventoryOpportunities"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedOfferId":{"type":"string","x-convex-table":"offers"},"approvedOfferVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdBy":{"type":"string","x-convex-table":"users"},"currency":{"type":"string"},"demandSearches":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"demandWindowStart":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"evidenceStatus":{"anyOf":[{"const":"observed"},{"const":"insufficient_data"}]},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"potentialValueCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"},"resourceUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reviewedBy":{"type":"string","x-convex-table":"users"},"snoozedUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sourceOfferId":{"type":"string","x-convex-table":"offers"},"sourceOfferVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"spaceUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"proposed"},{"const":"approved"},{"const":"published"},{"const":"dismissed"},{"const":"snoozed"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"zeroResultSearches":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","channelId","createdAt","createdBy","currency","demandSearches","demandWindowStart","endMs","evidenceStatus","expiresAt","name","potentialValueCents","resourceId","resourceUpdatedAt","sourceOfferId","sourceOfferVersion","spaceId","spaceUpdatedAt","startMs","status","tenantId","updatedAt","version","zeroResultSearches"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.options":{"post":{"operationId":"execute_insights_opportunities_options","summary":"Get opportunity options","description":"Return eligible hourly offers and enabled public sales channels with a truncation flag.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","x-convex-table":"channels"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"offers":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"id":{"type":"string","x-convex-table":"offers"},"name":{"type":"string"}},"required":["amountCents","currency","id","name"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["channels","offers","truncated"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.publish":{"post":{"operationId":"execute_insights_opportunities_publish","summary":"Publish an inventory opportunity","description":"Publish an approved draft offer on its channel and return the offer ID.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"opportunityId":{"type":"string","x-convex-table":"inventoryOpportunities"}},"required":["expectedVersion","opportunityId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"offers"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-publish","space-read","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.opportunities.update":{"post":{"operationId":"execute_insights_opportunities_update","summary":"Edit an inventory opportunity","description":"Update a proposed window, price and channel, invalidate evidence/approval and return null.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"opportunityId":{"type":"string","x-convex-table":"inventoryOpportunities"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","channelId","endMs","expectedVersion","opportunityId","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","space-publish","space-read","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.pricingForecast.analyze":{"post":{"operationId":"execute_insights_pricingForecast_analyze","summary":"Analyze pricing and demand","description":"Return a draft price-review recommendation, booking forecast, source digest and evidence limitations.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"adjustmentBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"expectedOfferVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedSourceDigest":{"type":"string"},"forecastDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"historyDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"historyEndMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["adjustmentBps","channelId","expectedOfferVersion","forecastDays","historyDays","historyEndMs","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"draftOnly":{"const":true},"forecast":{"anyOf":[{"type":"object","properties":{"backtestMeanAbsoluteError":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"backtestWeeks":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"calibrated":{"const":false},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lowerBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"method":{"const":"weekly_mean_planning_range_v1"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"upperBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["backtestMeanAbsoluteError","backtestWeeks","calibrated","endMs","expectedBookings","lowerBookings","method","startMs","upperBookings"],"additionalProperties":false},{"type":"null"}]},"generatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"marketContext":{"type":"object","properties":{"city":{"type":"string"},"complete":{"type":"boolean"},"sampleBuckets":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"scope":{"const":"aggregate_city_searches"},"searches":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"usedInModel":{"const":false},"windowEndMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"windowStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"zeroResultSearches":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["city","complete","sampleBuckets","scope","searches","usedInModel","windowEndMs","windowStartMs","zeroResultSearches"],"additionalProperties":false},"reasons":{"type":"array","items":{"anyOf":[{"const":"low_sample"},{"const":"limited_history"},{"const":"source_limit"},{"const":"unsupported_offer"},{"const":"inactive_source"},{"const":"stale_observations"},{"const":"source_changed"},{"const":"history_outdated"}]}},"recommendation":{"anyOf":[{"type":"object","properties":{"action":{"anyOf":[{"const":"review_increase"},{"const":"review_decrease"},{"const":"hold"}]},"adjustmentBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"method":{"const":"booking_trend_review_heuristic_v1"},"previousBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"recentBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"trend":{"anyOf":[{"const":"rising"},{"const":"falling"},{"const":"steady"}]}},"required":["action","adjustmentBps","amountCents","method","previousBookings","recentBookings","rules","terms","trend"],"additionalProperties":false},{"type":"null"}]},"sample":{"type":"object","properties":{"activeWeeks":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"exclusions":{"type":"object","properties":{"inactive":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"invalid":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"otherCurrency":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"otherOffer":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"otherTerms":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"otherVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inactive","invalid","otherCurrency","otherOffer","otherTerms","otherVersion"],"additionalProperties":false},"minimumBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"qualifyingBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"scannedBookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"weeklyBookings":{"type":"array","items":{"type":"object","properties":{"bookings":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["bookings","startMs"],"additionalProperties":false}},"weeks":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["activeWeeks","exclusions","minimumBookings","qualifyingBookings","scannedBookings","weeklyBookings","weeks"],"additionalProperties":false},"source":{"type":"object","properties":{"approvedTerms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"bookingIds":{"type":"array","items":{"type":"string","x-convex-table":"bookings"}},"channelId":{"type":"string","x-convex-table":"channels"},"channelName":{"type":"string"},"complete":{"type":"boolean"},"currency":{"type":"string"},"historyEndMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"historyStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"offerName":{"type":"string"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"publishedAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"resourceId":{"type":"string","x-convex-table":"resources"},"rowLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"spaceName":{"type":"string"}},"required":["approvedTerms","bookingIds","channelId","channelName","complete","currency","historyEndMs","historyStartMs","offerId","offerName","offerVersion","publishedAt","resourceId","rowLimit","spaceId","spaceName"],"additionalProperties":false},"sourceDigest":{"type":"string"},"status":{"anyOf":[{"const":"ready"},{"const":"insufficient_data"},{"const":"stale_source"}]}},"required":["draftOnly","forecast","generatedAt","marketContext","reasons","recommendation","sample","source","sourceDigest","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/insights.pricingForecast.options":{"post":{"operationId":"execute_insights_pricingForecast_options","summary":"Get pricing forecast options","description":"Return eligible published reservation offers with versions, enabled channels and truncation metadata.","tags":["insights"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{"channels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","x-convex-table":"channels"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"currency":{"type":"string"},"id":{"type":"string","x-convex-table":"offers"},"name":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channels","currency","id","name","version"],"additionalProperties":false}},"scanCapped":{"type":"boolean"},"truncated":{"type":"boolean"}},"required":["offers","scanCapped","truncated"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.apiKeys.getUsage":{"post":{"operationId":"execute_integrations_apiKeys_getUsage","summary":"Get API key usage","description":"Return usage statistics for a tenant-owned managed API key.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"keyRef":{"type":"string"}},"required":["keyRef"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.apiKeys.list":{"post":{"operationId":"execute_integrations_apiKeys_list","summary":"List API keys","description":"List tenant API-key metadata, including statuses, scopes, prefixes, and partner-channel bindings.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendar.disconnect":{"post":{"operationId":"execute_integrations_calendar_disconnect","summary":"Disconnect calendar provider","description":"Disable the selected tenant calendar connection and clear its stored credential references. Returns whether a connection was disconnected.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"anyOf":[{"const":"google"},{"const":"microsoft"}]}},"required":["provider"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendar.getDashboard":{"post":{"operationId":"execute_integrations_calendar_getDashboard","summary":"Get calendar dashboard","description":"Return calendar connection summaries and unresolved inbound calendar conflicts for the tenant.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendar.list":{"post":{"operationId":"execute_integrations_calendar_list","summary":"List calendar connections","description":"Return Google and Microsoft calendar connection, configuration, and delivery summaries for the tenant.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendar.select":{"post":{"operationId":"execute_integrations_calendar_select","summary":"Select provider calendar","description":"Choose a discovered calendar for an active tenant connection and return the selected calendar ID.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"calendarId":{"type":"string"},"provider":{"anyOf":[{"const":"google"},{"const":"microsoft"}]}},"required":["calendarId","provider"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendar.sync":{"post":{"operationId":"execute_integrations_calendar_sync","summary":"Sync calendar bookings","description":"Queue booking updates for an active calendar connection and return the number enqueued.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"anyOf":[{"const":"google"},{"const":"microsoft"}]}},"required":["provider"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendarConflicts.list":{"post":{"operationId":"execute_integrations_calendarConflicts_list","summary":"List calendar conflicts","description":"List unresolved inbound calendar conflicts, newest updated first, with affected spaces, bookings, and time windows.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.calendarConflicts.resolve":{"post":{"operationId":"execute_integrations_calendarConflicts_resolve","summary":"Ignore calendar conflict","description":"Mark a tenant-owned inbound calendar conflict as ignored and return its event ID and status.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","x-convex-table":"calendarInboundEvents"},"resolution":{"anyOf":[{"const":"ignore"}]}},"required":["eventId","resolution"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.connectorProposals.propose":{"post":{"operationId":"execute_integrations_connectorProposals_propose","summary":"Propose dynamic connector","description":"Build and store a tenant connector proposal containing provider, authentication, endpoints, scopes, and field mapping. Returns a pending-approval summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"authType":{"anyOf":[{"const":"api_key"},{"const":"oauth2"}]},"baseUrl":{"type":"string"},"endpoints":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"key":{"type":"string"},"method":{"anyOf":[{"const":"GET"},{"const":"POST"},{"const":"PUT"},{"const":"PATCH"},{"const":"DELETE"}]},"path":{"type":"string"}},"required":["key","method","path"],"additionalProperties":false}},"fieldMap":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"providerName":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authType","baseUrl","providerName"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry":{"post":{"operationId":"execute_integrations_deliveries_retry","summary":"Retry integration delivery (calendar.create)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.accessgrant":{"post":{"operationId":"execute_integrations_deliveries_retry_accessgrant","summary":"Retry integration delivery (access.grant)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin","integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.accessrevoke":{"post":{"operationId":"execute_integrations_deliveries_retry_accessrevoke","summary":"Retry integration delivery (access.revoke)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin","integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.calendardelete":{"post":{"operationId":"execute_integrations_deliveries_retry_calendardelete","summary":"Retry integration delivery (calendar.delete)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.calendarupdate":{"post":{"operationId":"execute_integrations_deliveries_retry_calendarupdate","summary":"Retry integration delivery (calendar.update)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.invoiceexport":{"post":{"operationId":"execute_integrations_deliveries_retry_invoiceexport","summary":"Retry integration delivery (invoice.export)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.slackbookingcancelled":{"post":{"operationId":"execute_integrations_deliveries_retry_slackbookingcancelled","summary":"Retry integration delivery (slack.booking.cancelled)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.slackbookingcheckedin":{"post":{"operationId":"execute_integrations_deliveries_retry_slackbookingcheckedin","summary":"Retry integration delivery (slack.booking.checked_in)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.slackbookingcompleted":{"post":{"operationId":"execute_integrations_deliveries_retry_slackbookingcompleted","summary":"Retry integration delivery (slack.booking.completed)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.slackbookingconfirmed":{"post":{"operationId":"execute_integrations_deliveries_retry_slackbookingconfirmed","summary":"Retry integration delivery (slack.booking.confirmed)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.slackmaintenanceticketcreated":{"post":{"operationId":"execute_integrations_deliveries_retry_slackmaintenanceticketcreated","summary":"Retry integration delivery (slack.maintenance.ticket.created)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.webhookbookingcancelled":{"post":{"operationId":"execute_integrations_deliveries_retry_webhookbookingcancelled","summary":"Retry integration delivery (webhook.booking.cancelled)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.webhookbookingcheckedin":{"post":{"operationId":"execute_integrations_deliveries_retry_webhookbookingcheckedin","summary":"Retry integration delivery (webhook.booking.checked_in)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.webhookbookingcompleted":{"post":{"operationId":"execute_integrations_deliveries_retry_webhookbookingcompleted","summary":"Retry integration delivery (webhook.booking.completed)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.deliveries.retry.webhookbookingcreated":{"post":{"operationId":"execute_integrations_deliveries_retry_webhookbookingcreated","summary":"Retry integration delivery (webhook.booking.created)","description":"Reset a tenant dead-letter delivery to pending and update its booking access projection. Returns a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"integrationDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requeued":{"type":"boolean"}},"required":["requeued"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.entitlementAccess.getConfiguration":{"post":{"operationId":"execute_integrations_entitlementAccess_getConfiguration","summary":"Get entitlement access configuration","description":"Return whether Kisi and generic access connections are connected and whether entitlement access is enabled.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"connected":{"type":"boolean"},"enabled":{"type":"boolean"},"provider":{"anyOf":[{"const":"kisi"},{"const":"generic_access"}]}},"required":["connected","enabled","provider"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.entitlementAccess.inspect":{"post":{"operationId":"execute_integrations_entitlementAccess_inspect","summary":"Inspect entitlement access","description":"Return eligibility, configuration availability, and recent provider access assignments for a resource and entitlement subject.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"anyOf":[{"const":"kisi"},{"const":"generic_access"}]},"resourceId":{"type":"string","x-convex-table":"resources"},"subject":{"anyOf":[{"type":"object","properties":{"invitationId":{"type":"string","x-convex-table":"visitorInvitations"},"kind":{"const":"visitor"}},"required":["invitationId","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"pass"},"passId":{"type":"string","x-convex-table":"dayPasses"}},"required":["kind","passId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"event"},"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["kind","registrationId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"memberId":{"type":"string","x-convex-table":"members"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["kind","memberId","subscriptionId"],"additionalProperties":false}]}},"required":["provider","resourceId","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignments":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"accessAssignments"},"acknowledgedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"desired":{"anyOf":[{"const":"grant"},{"const":"revoke"}]},"eligibilityFingerprint":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fingerprint":{"type":"string"},"grantAttemptedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"integrationId":{"type":"string","x-convex-table":"integrations"},"kisiGroupId":{"type":"string"},"lastDeliveryId":{"type":"string","x-convex-table":"integrationDeliveries"},"propertyId":{"type":"string","x-convex-table":"properties"},"provider":{"anyOf":[{"const":"kisi"},{"const":"generic_access"}]},"providerAssignmentId":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"revision":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sourceKey":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"state":{"anyOf":[{"const":"pending"},{"const":"granted"},{"const":"revoked"},{"const":"failed"}]},"subject":{"anyOf":[{"type":"object","properties":{"kind":{"const":"visitor"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"pass"},"passId":{"type":"string","x-convex-table":"dayPasses"}},"required":["kind","passId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"event"},"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["kind","registrationId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"memberId":{"type":"string","x-convex-table":"members"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["kind","memberId","subscriptionId"],"additionalProperties":false}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","desired","eligibilityFingerprint","endMs","fingerprint","integrationId","propertyId","provider","resourceId","revision","sourceKey","startMs","state","subject","tenantId","updatedAt"],"additionalProperties":false}},"configured":{"type":"boolean"},"eligible":{"type":"boolean"},"reason":{"type":"string"}},"required":["assignments","configured","eligible","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.entitlementAccess.request":{"post":{"operationId":"execute_integrations_entitlementAccess_request","summary":"Request entitlement access","description":"Reconcile a subject's door-access eligibility and queue a provider grant when configured. Returns eligibility, state, reason, and an assignment ID.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"provider":{"anyOf":[{"const":"kisi"},{"const":"generic_access"}]},"resourceId":{"type":"string","x-convex-table":"resources"},"subject":{"anyOf":[{"type":"object","properties":{"invitationId":{"type":"string","x-convex-table":"visitorInvitations"},"kind":{"const":"visitor"}},"required":["invitationId","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"pass"},"passId":{"type":"string","x-convex-table":"dayPasses"}},"required":["kind","passId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"event"},"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["kind","registrationId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"memberId":{"type":"string","x-convex-table":"members"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["kind","memberId","subscriptionId"],"additionalProperties":false}]}},"required":["provider","resourceId","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignmentId":{"anyOf":[{"type":"string","x-convex-table":"accessAssignments"},{"type":"null"}]},"eligible":{"type":"boolean"},"reason":{"type":"string"},"state":{"type":"string"}},"required":["assignmentId","eligible","reason","state"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.entitlementAccess.retry":{"post":{"operationId":"execute_integrations_entitlementAccess_retry","summary":"Retry entitlement access","description":"Retry a failed tenant access assignment after rechecking grant eligibility. Returns null.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignmentId":{"type":"string","x-convex-table":"accessAssignments"}},"required":["assignmentId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.entitlementAccess.revoke":{"post":{"operationId":"execute_integrations_entitlementAccess_revoke","summary":"Revoke entitlement access","description":"Queue revocation of a tenant access assignment. Returns null.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignmentId":{"type":"string","x-convex-table":"accessAssignments"}},"required":["assignmentId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.entitlementAccess.setEnabled":{"post":{"operationId":"execute_integrations_entitlementAccess_setEnabled","summary":"Set entitlement access","description":"Enable or disable entitlement-based door access on an existing active provider connection. Returns null.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"provider":{"anyOf":[{"const":"kisi"},{"const":"generic_access"}]}},"required":["enabled","provider"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.genericAccess.disconnect":{"post":{"operationId":"execute_integrations_genericAccess_disconnect","summary":"Disconnect generic access","description":"Disable the tenant's generic access connection, clear its local credential reference, and return connection status.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.genericAccess.get":{"post":{"operationId":"execute_integrations_genericAccess_get","summary":"Get generic access connection","description":"Return the tenant's generic access connection status, configured endpoint URL, and update time.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.genericAccess.listDeliveries":{"post":{"operationId":"execute_integrations_genericAccess_listDeliveries","summary":"List generic access deliveries","description":"Return the tenant's 40 most recently updated generic access deliveries with attempts, status, target reference, and errors.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.genericAccess.test":{"post":{"operationId":"execute_integrations_genericAccess_test","summary":"Test generic access connection","description":"Send a signed synthetic access-grant payload to the tenant's configured endpoint and return delivery success or a reason.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.hub.list":{"post":{"operationId":"execute_integrations_hub_list","summary":"List integration hub status","description":"Return catalog connector setup, connection, breaker, dead-letter, and management-path summaries for the tenant.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.kisi.disconnect":{"post":{"operationId":"execute_integrations_kisi_disconnect","summary":"Disconnect Kisi","description":"Disable the tenant's Kisi connection, clear its local credential reference, and return disconnected status.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.kisi.get":{"post":{"operationId":"execute_integrations_kisi_get","summary":"Get Kisi connection","description":"Return the tenant's Kisi connection status and stored validation summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.kisi.listDeliveries":{"post":{"operationId":"execute_integrations_kisi_listDeliveries","summary":"List Kisi deliveries","description":"Return the tenant's 40 most recently updated Kisi deliveries with attempts, status, target reference, and errors.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.kisi.test":{"post":{"operationId":"execute_integrations_kisi_test","summary":"Test Kisi connection","description":"Validate the stored tenant Kisi API key with a provider groups request and return connection health.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.quickBooks.disconnect":{"post":{"operationId":"execute_integrations_quickBooks_disconnect","summary":"Disconnect QuickBooks","description":"Disable the tenant's QuickBooks connection, clear local OAuth credential references, and return connection status.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.quickBooks.get":{"post":{"operationId":"execute_integrations_quickBooks_get","summary":"Get QuickBooks connection","description":"Return QuickBooks connection status, company identifier, and missing provider configuration names for the tenant.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.quickBooks.listExports":{"post":{"operationId":"execute_integrations_quickBooks_listExports","summary":"List QuickBooks exports","description":"Return up to 60 recent invoice export summaries with invoice totals, currency, export state, delivery ID, and errors.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.slack.disconnect":{"post":{"operationId":"execute_integrations_slack_disconnect","summary":"Disconnect Slack","description":"Disable the tenant Slack notification connection, clear its local webhook credential reference, and return status.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.slack.get":{"post":{"operationId":"execute_integrations_slack_get","summary":"Get Slack connection","description":"Return tenant Slack connection status, enabled notification event types, and webhook host.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.slack.listDeliveries":{"post":{"operationId":"execute_integrations_slack_listDeliveries","summary":"List Slack deliveries","description":"Return the tenant's 40 most recently updated Slack deliveries with attempts, status, target reference, and errors.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.slack.listEventTypes":{"post":{"operationId":"execute_integrations_slack_listEventTypes","summary":"List Slack event types","description":"Return supported Slack notification event identifiers and labels.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.slack.test":{"post":{"operationId":"execute_integrations_slack_test","summary":"Test Slack connection","description":"Send a fixed test notification to the tenant's stored Slack webhook and return delivery success or an error reason.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.status.list":{"post":{"operationId":"execute_integrations_status_list","summary":"List integration status","description":"Return provider connection and circuit-breaker states with dead-letter summaries for the tenant.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.supplyMappings.getOptions":{"post":{"operationId":"execute_integrations_supplyMappings_getOptions","summary":"Get supply mapping options","description":"Return active calendar connections, discovered calendar choices, tenant timezone, and whether the caller can configure mappings.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"canConfigure":{"type":"boolean"},"connections":{"type":"array","items":{"type":"object","properties":{"calendars":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"id":{"type":"string","x-convex-table":"integrations"},"provider":{"anyOf":[{"const":"google"},{"const":"microsoft"}]}},"required":["calendars","id","provider"],"additionalProperties":false}},"timeZone":{"type":"string"}},"required":["canConfigure","connections","timeZone"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.supplyMappings.list":{"post":{"operationId":"execute_integrations_supplyMappings_list","summary":"List external supply mappings","description":"Return a paginated tenant mapping list with resource names, provider calendars, versions, freshness, coverage, and errors.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"coverageEndMs":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"coverageStartMs":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"enabled":{"type":"boolean"},"externalCalendarId":{"type":"string"},"id":{"type":"string","x-convex-table":"calendarResourceMappings"},"integrationId":{"type":"string","x-convex-table":"integrations"},"lastError":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"maximumSyncAgeMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"provider":{"anyOf":[{"const":"google"},{"const":"microsoft"}]},"resourceId":{"type":"string","x-convex-table":"resources"},"resourceName":{"type":"string"},"syncStatus":{"anyOf":[{"const":"pending"},{"const":"syncing"},{"const":"current"},{"const":"stale"},{"const":"error"},{"const":"paused"},{"const":"detached"}]},"timeZone":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["coverageEndMs","coverageStartMs","enabled","externalCalendarId","id","integrationId","lastError","lastSyncAt","maximumSyncAgeMs","provider","resourceId","resourceName","syncStatus","timeZone","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.supplyMappings.pause":{"post":{"operationId":"execute_integrations_supplyMappings_pause","summary":"Pause external supply mapping","description":"Pause a tenant calendar mapping and mark its external resource availability stale. Returns null.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"mappingId":{"type":"string","x-convex-table":"calendarResourceMappings"}},"required":["expectedVersion","mappingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.usageMetering.disconnect":{"post":{"operationId":"execute_integrations_usageMetering_disconnect","summary":"Disconnect usage metering","description":"Disable the tenant usage-metering connection, clear its signing credential reference, and return an unconfigured summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"endpointPath":{"type":"string"},"secretStored":{"type":"boolean"},"status":{"anyOf":[{"const":"not_configured"},{"const":"active"},{"const":"disabled"},{"const":"error"}]},"updatedAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["connectionId","endpointPath","secretStored","status","updatedAt"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.usageMetering.get":{"post":{"operationId":"execute_integrations_usageMetering_get","summary":"Get usage metering connection","description":"Return tenant metering status, inbound endpoint path, connection identifier, and whether a secret is stored.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"endpointPath":{"type":"string"},"secretStored":{"type":"boolean"},"status":{"anyOf":[{"const":"not_configured"},{"const":"active"},{"const":"disabled"},{"const":"error"}]},"updatedAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["connectionId","endpointPath","secretStored","status","updatedAt"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.usageMetering.listEvents":{"post":{"operationId":"execute_integrations_usageMetering_listEvents","summary":"List metered usage events","description":"Return the tenant's 25 most recently received usage events with units, quantities, debits, overages, state, and error codes.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"debitedQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"errorCode":{"anyOf":[{"anyOf":[{"const":"member_not_found"},{"const":"member_ambiguous"},{"const":"location_not_found"},{"const":"resource_mismatch"},{"const":"benefit_not_found"},{"const":"benefit_unavailable"},{"const":"connection_owner_unavailable"},{"const":"not_permitted"},{"const":"benefit_period_closed"}]},{"type":"null"}]},"externalId":{"type":"string"},"id":{"type":"string","x-convex-table":"usageEvents"},"occurredAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"overageQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"provider":{"type":"string"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceKind":{"anyOf":[{"const":"wifi"},{"const":"printing"},{"const":"parking"}]},"state":{"anyOf":[{"const":"pending"},{"const":"applied"},{"const":"rejected"},{"const":"unbilled_overage"}]},"unit":{"anyOf":[{"const":"wifi_minute"},{"const":"print_page"},{"const":"parking_minute"}]}},"required":["debitedQuantity","errorCode","externalId","id","occurredAt","overageQuantity","provider","quantity","receivedAt","resourceKind","state","unit"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.webhooks.disable":{"post":{"operationId":"execute_integrations_webhooks_disable","summary":"Disable webhook subscription","description":"Revoke and soft-delete a tenant webhook subscription, then return its updated summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"webhookSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.webhooks.list":{"post":{"operationId":"execute_integrations_webhooks_list","summary":"List webhook subscriptions","description":"List nondeleted tenant webhook subscriptions, newest first, with event types, target URLs, and status.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.webhooks.listDeliveries":{"post":{"operationId":"execute_integrations_webhooks_listDeliveries","summary":"List webhook deliveries","description":"Return up to 80 recent tenant webhook deliveries with status, attempts, subscription target, errors, and payload previews.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"anyOf":[{"const":"pending"},{"const":"inflight"},{"const":"delivered"},{"const":"dead"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.webhooks.listEventTypes":{"post":{"operationId":"execute_integrations_webhooks_listEventTypes","summary":"List webhook event types","description":"Return supported outbound webhook event identifiers and labels.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-read"],"x-keyvra-conditional-permissions":[]}},"/operations/integrations.webhooks.redeliver":{"post":{"operationId":"execute_integrations_webhooks_redeliver","summary":"Redeliver webhook event","description":"Reset an existing tenant webhook delivery and its associated integration delivery to pending, then return a delivery summary.","tags":["integrations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"deliveryId":{"type":"string","x-convex-table":"webhookDeliveries"}},"required":["deliveryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["integration-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.addOns.create":{"post":{"operationId":"execute_inventory_addOns_create","summary":"Create add-on service","description":"Create a priced service for a tenant space and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"active":{"type":"boolean"},"availableFromMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"availableUntilMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"description":{"type":"string"},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"taxable":{"type":"boolean"}},"required":["active","name","priceCents","spaceId","taxable"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.addOns.delete":{"post":{"operationId":"execute_inventory_addOns_delete","summary":"Delete add-on service","description":"Disable and soft-delete a tenant add-on service; return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"addOnServiceId":{"type":"string","x-convex-table":"addOnServices"}},"required":["addOnServiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.addOns.list":{"post":{"operationId":"execute_inventory_addOns_list","summary":"List add-on services","description":"Return nondeleted add-on services for a tenant-owned space.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.addOns.update":{"post":{"operationId":"execute_inventory_addOns_update","summary":"Update add-on service","description":"Update service details, price, availability, and tax status; return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"active":{"type":"boolean"},"addOnServiceId":{"type":"string","x-convex-table":"addOnServices"},"availableFromMs":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"availableUntilMs":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxable":{"type":"boolean"}},"required":["addOnServiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.amenities.create":{"post":{"operationId":"execute_inventory_amenities_create","summary":"Create amenity","description":"Create a tenant amenity and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"iconName":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.amenities.delete":{"post":{"operationId":"execute_inventory_amenities_delete","summary":"Delete amenity","description":"Soft-delete a tenant amenity and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amenityId":{"type":"string","x-convex-table":"amenities"}},"required":["amenityId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.amenities.list":{"post":{"operationId":"execute_inventory_amenities_list","summary":"List amenities","description":"Return tenant amenities ordered by sort order and name, optionally including deleted rows.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.amenities.update":{"post":{"operationId":"execute_inventory_amenities_update","summary":"Update amenity","description":"Update a tenant amenity and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amenityId":{"type":"string","x-convex-table":"amenities"},"description":{"type":"string"},"iconName":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amenityId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.availability.set":{"post":{"operationId":"execute_inventory_availability_set","summary":"Set availability schedule","description":"Replace the weekly schedule for a tenant space and return its normalized windows.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"availabilitySchedule":{"type":"array","items":{"type":"object","properties":{"closeMinute":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"isClosed":{"type":"boolean"},"openMinute":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"weekday":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["closeMinute","isClosed","openMinute","weekday"],"additionalProperties":false}},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["availabilitySchedule","spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.blackouts.create":{"post":{"operationId":"execute_inventory_blackouts_create","summary":"Create blackout date","description":"Create a scoped availability blackout and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"floorId":{"type":"string","x-convex-table":"floors"},"propertyId":{"type":"string","x-convex-table":"properties"},"reason":{"type":"string"},"recurrence":{"type":"object","properties":{"frequency":{"anyOf":[{"const":"weekly"},{"const":"monthly"}]},"interval":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"untilAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"weekdays":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}}},"required":["frequency","interval"],"additionalProperties":false},"spaceId":{"type":"string","x-convex-table":"spaces"},"startAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endAt","reason","startAt"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.blackouts.delete":{"post":{"operationId":"execute_inventory_blackouts_delete","summary":"Delete blackout date","description":"Soft-delete a tenant blackout and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"blackoutDateId":{"type":"string","x-convex-table":"blackoutDates"}},"required":["blackoutDateId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.blackouts.list":{"post":{"operationId":"execute_inventory_blackouts_list","summary":"List blackout dates","description":"Return tenant blackout definitions ordered by start time, optionally including deleted rows.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.bookingRules.set":{"post":{"operationId":"execute_inventory_bookingRules_set","summary":"Set booking rules","description":"Replace a tenant space's booking rules and return the validated rules.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingRules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"cancellationPolicy":{"anyOf":[{"const":"flexible"},{"const":"moderate"},{"const":"strict"}]},"cancellationWindowHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"checkInOpeningMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxDurationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minDurationMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"noShowGraceMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","minDurationMinutes","requiresApproval"],"additionalProperties":false},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["bookingRules","spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.channels.list":{"post":{"operationId":"execute_inventory_channels_list","summary":"List channels","description":"Return up to 50 nondeleted tenant distribution channels.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"enabled":{"type":"boolean"},"kind":{"anyOf":[{"const":"internal"},{"const":"members"},{"const":"direct"},{"const":"marketplace"},{"const":"corporate"},{"const":"partner"}]},"name":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","enabled","kind","name","tenantId","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.commercialRules.get":{"post":{"operationId":"execute_inventory_commercialRules_get","summary":"Get commercial rules","description":"Return workspace, region, and property rule policies with versions and management availability.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"canManage":{"type":"boolean"},"policies":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"commercialRulePolicies"},"propertyId":{"anyOf":[{"type":"string","x-convex-table":"properties"},{"type":"null"}]},"regionId":{"anyOf":[{"type":"string","x-convex-table":"regions"},{"type":"null"}]},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"cancellationPolicy":{"anyOf":[{"const":"flexible"},{"const":"moderate"},{"const":"strict"}]},"cancellationWindowHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"checkInOpeningMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"noShowGraceMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":[],"additionalProperties":false},"scope":{"anyOf":[{"const":"tenant"},{"const":"region"},{"const":"property"}]},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_id","propertyId","regionId","rules","scope","updatedAt","version"],"additionalProperties":false}},"properties":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"properties"},"name":{"type":"string"},"regionId":{"anyOf":[{"type":"string","x-convex-table":"regions"},{"type":"null"}]}},"required":["_id","name","regionId"],"additionalProperties":false}},"regions":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"regions"},"name":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_id","name","updatedAt"],"additionalProperties":false}}},"required":["canManage","policies","properties","regions"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.commercialRules.set":{"post":{"operationId":"execute_inventory_commercialRules_set","summary":"Save commercial rule policy","description":"Replace rules at a workspace, region, or property level and return policy ID and version.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"regionId":{"type":"string","x-convex-table":"regions"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"cancellationPolicy":{"anyOf":[{"const":"flexible"},{"const":"moderate"},{"const":"strict"}]},"cancellationWindowHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"checkInOpeningMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"noShowGraceMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":[],"additionalProperties":false},"scope":{"anyOf":[{"const":"tenant"},{"const":"region"},{"const":"property"}]}},"required":["rules","scope"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"policyId":{"type":"string","x-convex-table":"commercialRulePolicies"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["policyId","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.floors.create":{"post":{"operationId":"execute_inventory_floors_create","summary":"Create floor","description":"Create a floor under a live tenant property and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"level":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["level","name","propertyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-create"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.floors.delete":{"post":{"operationId":"execute_inventory_floors_delete","summary":"Delete floor","description":"Soft-delete a tenant floor and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"floorId":{"type":"string","x-convex-table":"floors"}},"required":["floorId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-delete"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.floors.list":{"post":{"operationId":"execute_inventory_floors_list","summary":"List floors","description":"Return tenant floors ordered by level and name, optionally including deleted rows.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.floors.restore":{"post":{"operationId":"execute_inventory_floors_restore","summary":"Restore floor","description":"Clear a tenant floor's deletion marker and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"floorId":{"type":"string","x-convex-table":"floors"}},"required":["floorId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-delete"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.floors.update":{"post":{"operationId":"execute_inventory_floors_update","summary":"Update floor","description":"Update tenant-floor name, slug, level, or sort order and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"floorId":{"type":"string","x-convex-table":"floors"},"level":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["floorId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.legacyCatalog.import":{"post":{"operationId":"execute_inventory_legacyCatalog_import","summary":"Import legacy space offers","description":"Link a catalog resource and create draft offers from a tenant space's legacy pricing tiers; return resource ID and count.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"createdOffers":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["createdOffers","resourceId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.legacyCatalog.preview":{"post":{"operationId":"execute_inventory_legacyCatalog_preview","summary":"Preview legacy catalog","description":"Return a paginated migration preview with space names, tier counts, and migrated flags.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"migrated":{"type":"boolean"},"name":{"type":"string"},"offers":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["migrated","name","offers","spaceId"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offerLegal.get":{"post":{"operationId":"execute_inventory_offerLegal_get","summary":"Get publication legal status","description":"Return whether marketplace publication requires terms or attestation and their current acceptance status.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"anyOf":[{"const":"en"},{"const":"fr"}]},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["locale","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.bulkSetStatus":{"post":{"operationId":"execute_inventory_offers_bulkSetStatus","summary":"Set offer statuses in bulk (published)","description":"Publish or pause selected tenant offers and return per-item outcomes and totals.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}}},"required":["offers"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.bulkSetStatus.archived":{"post":{"operationId":"execute_inventory_offers_bulkSetStatus_archived","summary":"Set offer statuses in bulk (archived)","description":"Publish or pause selected tenant offers and return per-item outcomes and totals.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}}},"required":["offers"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.bulkSetStatus.draft":{"post":{"operationId":"execute_inventory_offers_bulkSetStatus_draft","summary":"Set offer statuses in bulk (draft)","description":"Publish or pause selected tenant offers and return per-item outcomes and totals.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}}},"required":["offers"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.bulkSetStatus.paused":{"post":{"operationId":"execute_inventory_offers_bulkSetStatus_paused","summary":"Set offer statuses in bulk (paused)","description":"Publish or pause selected tenant offers and return per-item outcomes and totals.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}}},"required":["offers"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.list":{"post":{"operationId":"execute_inventory_offers_list","summary":"List offers","description":"Return a page of nondeleted tenant offers with publication versions.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"offers"},"channelIds":{"type":"array","items":{"type":"string","x-convex-table":"channels"}},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"description":{"type":"string"},"endsAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"anyOf":[{"const":"reservation"},{"const":"pass"},{"const":"event"},{"const":"membership"},{"const":"package"},{"const":"service"}]},"legacyTierId":{"type":"string"},"name":{"type":"string"},"publishedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"remoteFulfillmentPolicy":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"startsAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"draft"},{"const":"published"},{"const":"paused"},{"const":"archived"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","channelIds","components","createdAt","description","kind","name","resourceId","rules","status","tenantId","terms","updatedAt","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.set":{"post":{"operationId":"execute_inventory_offers_set","summary":"Save offer","description":"Create a draft offer or replace an existing offer's commercial terms and increment its version; return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelIds":{"type":"array","items":{"type":"string","x-convex-table":"channels"}},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"description":{"type":"string"},"endsAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"anyOf":[{"const":"reservation"},{"const":"pass"},{"const":"event"},{"const":"membership"},{"const":"package"},{"const":"service"}]},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"remoteFulfillmentPolicy":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"startsAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false}},"required":["channelIds","components","description","kind","name","resourceId","rules","terms"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"offers"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.setStatus":{"post":{"operationId":"execute_inventory_offers_setStatus","summary":"Set offer status (published)","description":"Change an offer's publication status, increment its version, and reconcile its public surfaces.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.setStatus.archived":{"post":{"operationId":"execute_inventory_offers_setStatus_archived","summary":"Set offer status (archived)","description":"Change an offer's publication status, increment its version, and reconcile its public surfaces.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.setStatus.draft":{"post":{"operationId":"execute_inventory_offers_setStatus_draft","summary":"Set offer status (draft)","description":"Change an offer's publication status, increment its version, and reconcile its public surfaces.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.offers.setStatus.paused":{"post":{"operationId":"execute_inventory_offers_setStatus_paused","summary":"Set offer status (paused)","description":"Change an offer's publication status, increment its version, and reconcile its public surfaces.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["expectedVersion","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish","space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.pricing.set":{"post":{"operationId":"execute_inventory_pricing_set","summary":"Set pricing tiers","description":"Replace a tenant space's pricing tiers and return the normalized tiers.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pricingTiers":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"billingUnit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"}]},"currency":{"type":"string"},"id":{"type":"string"},"isDefault":{"type":"boolean"},"label":{"type":"string"},"memberDiscount":{"type":"object","properties":{"type":{"anyOf":[{"const":"percent"},{"const":"fixed"}]},"value":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["type","value"],"additionalProperties":false}},"required":["amountCents","billingUnit","currency","id","isDefault","label"],"additionalProperties":false}},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["pricingTiers","spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.properties.create":{"post":{"operationId":"execute_inventory_properties_create","summary":"Create property","description":"Create a tenant location with address, timezone, currency, and media references; return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"line1":{"type":"string"},"line2":{"type":"string"},"postalCode":{"type":"string"},"region":{"type":"string"}},"required":["city","country","line1","postalCode","region"],"additionalProperties":false},"contact":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"required":[],"additionalProperties":false},"coverImageStorageId":{"type":"string","x-convex-table":"_storage"},"currency":{"type":"string"},"description":{"type":"string"},"imageStorageIds":{"type":"array","items":{"type":"string","x-convex-table":"_storage"}},"lat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"}},"required":["address","currency","name","timezone"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-create"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.properties.delete":{"post":{"operationId":"execute_inventory_properties_delete","summary":"Delete property","description":"Soft-delete a tenant property and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["propertyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-delete"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.properties.list":{"post":{"operationId":"execute_inventory_properties_list","summary":"List properties","description":"Return tenant properties ordered by sort order and name, optionally including deleted rows.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.properties.restore":{"post":{"operationId":"execute_inventory_properties_restore","summary":"Restore property","description":"Clear a tenant property's deletion marker and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["propertyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-delete"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.properties.update":{"post":{"operationId":"execute_inventory_properties_update","summary":"Update property","description":"Update location details, currency, or media references and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"line1":{"type":"string"},"line2":{"type":"string"},"postalCode":{"type":"string"},"region":{"type":"string"}},"required":["city","country","line1","postalCode","region"],"additionalProperties":false},"contact":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"required":[],"additionalProperties":false},"coverImageStorageId":{"type":"string","x-convex-table":"_storage"},"currency":{"type":"string"},"description":{"type":"string"},"imageStorageIds":{"type":"array","items":{"type":"string","x-convex-table":"_storage"}},"lat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timezone":{"type":"string"}},"required":["propertyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.regions.archive":{"post":{"operationId":"execute_inventory_regions_archive","summary":"Archive region","description":"Archive an unused tenant region, remove its rule policies, and clear remaining deleted-property assignments.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"regionId":{"type":"string","x-convex-table":"regions"}},"required":["regionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.regions.assignProperty":{"post":{"operationId":"execute_inventory_regions_assignProperty","summary":"Assign property region","description":"Assign a live tenant property to a region or remove its region assignment.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"regionId":{"anyOf":[{"type":"string","x-convex-table":"regions"},{"type":"null"}]}},"required":["propertyId","regionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.regions.list":{"post":{"operationId":"execute_inventory_regions_list","summary":"List regions","description":"Return up to 50 live tenant regions ordered by sort order and name.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"regions"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","name","slug","sortOrder","tenantId","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.regions.set":{"post":{"operationId":"execute_inventory_regions_set","summary":"Save region","description":"Create or rename a tenant region and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"regionId":{"type":"string","x-convex-table":"regions"}},"required":["name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"regions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.resources.create":{"post":{"operationId":"execute_inventory_resources_create","summary":"Create resource","description":"Create a tenant resource or reuse the catalog resource linked to a space; return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"kind":{"anyOf":[{"const":"space"},{"const":"equipment"},{"const":"parking"},{"const":"locker"},{"const":"storage"},{"const":"service"},{"const":"staff"},{"const":"mailbox"},{"const":"printing"},{"const":"wifi"},{"const":"virtual_office"},{"const":"ev_charger"}]},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["kind","name","quantity"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"resources"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-create"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.resources.list":{"post":{"operationId":"execute_inventory_resources_list","summary":"List resources","description":"Return a page of nondeleted tenant catalog resources.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"resources"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"description":{"type":"string"},"externalCoverageEndMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"externalCoverageStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"externalId":{"type":"string"},"integrationId":{"type":"string","x-convex-table":"integrations"},"kind":{"anyOf":[{"const":"space"},{"const":"equipment"},{"const":"parking"},{"const":"locker"},{"const":"storage"},{"const":"service"},{"const":"staff"},{"const":"mailbox"},{"const":"printing"},{"const":"wifi"},{"const":"virtual_office"},{"const":"ev_charger"}]},"lastSyncAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumSyncAgeMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"offerChannelKinds":{"type":"array","items":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]}},"propertyId":{"type":"string","x-convex-table":"properties"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"source":{"anyOf":[{"const":"keyvra"},{"const":"external"}]},"spaceId":{"type":"string","x-convex-table":"spaces"},"status":{"anyOf":[{"const":"active"},{"const":"unavailable"},{"const":"maintenance"},{"const":"archived"}]},"syncStatus":{"anyOf":[{"const":"current"},{"const":"stale"},{"const":"error"},{"const":"unknown"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","description","kind","name","quantity","source","status","tenantId","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.resources.update":{"post":{"operationId":"execute_inventory_resources_update","summary":"Update resource (active)","description":"Update tenant-resource details, availability status, or location; return null.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"},"propertyId":{"anyOf":[{"type":"string","x-convex-table":"properties"},{"type":"null"}]},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["description","name","resourceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.resources.update.archived":{"post":{"operationId":"execute_inventory_resources_update_archived","summary":"Update resource (archived)","description":"Update tenant-resource details, availability status, or location; return null.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"},"propertyId":{"anyOf":[{"type":"string","x-convex-table":"properties"},{"type":"null"}]},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["description","name","resourceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.resources.update.maintenance":{"post":{"operationId":"execute_inventory_resources_update_maintenance","summary":"Update resource (maintenance)","description":"Update tenant-resource details, availability status, or location; return null.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"},"propertyId":{"anyOf":[{"type":"string","x-convex-table":"properties"},{"type":"null"}]},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["description","name","resourceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.resources.update.unavailable":{"post":{"operationId":"execute_inventory_resources_update_unavailable","summary":"Update resource (unavailable)","description":"Update tenant-resource details, availability status, or location; return null.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"name":{"type":"string"},"propertyId":{"anyOf":[{"type":"string","x-convex-table":"properties"},{"type":"null"}]},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["description","name","resourceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.settings.get":{"post":{"operationId":"execute_inventory_settings_get","summary":"Get inventory settings","description":"Return the tenant's default currency and timezone.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.spaceAmenities.set":{"post":{"operationId":"execute_inventory_spaceAmenities_set","summary":"Set space amenities","description":"Replace a tenant space's amenity IDs and return the space and deduplicated IDs.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amenityIds":{"type":"array","items":{"type":"string","x-convex-table":"amenities"}},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["amenityIds","spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.spaceBlackouts.list":{"post":{"operationId":"execute_inventory_spaceBlackouts_list","summary":"List space blackouts","description":"Return overlapping blackout occurrences for a tenant space and time window.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endAt","spaceId","startAt"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.spaces.delete":{"post":{"operationId":"execute_inventory_spaces_delete","summary":"Delete space","description":"Soft-delete a tenant space and return its ID.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-delete"],"x-keyvra-conditional-permissions":[]}},"/operations/inventory.spaces.list":{"post":{"operationId":"execute_inventory_spaces_list","summary":"List spaces","description":"Return tenant spaces filtered by property or floor, optionally including deleted rows.","tags":["inventory"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"floorId":{"type":"string","x-convex-table":"floors"},"includeDeleted":{"type":"boolean"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.catalog.refresh":{"post":{"operationId":"execute_marketing_catalog_refresh","summary":"Refresh marketplace catalog","description":"Schedule a paginated rebuild of commerce catalog entries for the caller's tenant.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-publish"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.listingRedirects.set":{"post":{"operationId":"execute_marketing_listingRedirects_set","summary":"Set a listing slug redirect","description":"Create or update a tenant-scoped redirect from an old listing slug to a new slug.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"listingId":{"type":"string","x-convex-table":"listings"},"newSlug":{"type":"string"},"oldSlug":{"type":"string"}},"required":["newSlug","oldSlug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.listings.unpublish":{"post":{"operationId":"execute_marketing_listings_unpublish","summary":"Unpublish a marketplace listing","description":"Set the tenant space's marketplace listing projection to unpublished.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.listings.update":{"post":{"operationId":"execute_marketing_listings_update","summary":"Update a marketplace listing","description":"Create or synchronize a listing projection from the tenant space and return its ID and slug.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"isPublished":{"type":"boolean"},"lat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"spaceType":{"type":"string"}},"required":["lat","lng","spaceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.marketplace.get":{"post":{"operationId":"execute_marketing_marketplace_get","summary":"Get marketplace publishing dashboard","description":"Return tenant listing readiness, publication and moderation state, featured counts, and commission configuration.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.promotions.create":{"post":{"operationId":"execute_marketing_promotions_create","summary":"Create a promotion","description":"Create a workspace promotion and return its normalized details and usage summary.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"active":{"type":"boolean"},"amountOffCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountOffCurrency":{"type":"string"},"code":{"type":"string"},"discountType":{"anyOf":[{"const":"percent"},{"const":"fixed"}]},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxRedemptions":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumAmountCurrency":{"type":"string"},"name":{"type":"string"},"percentOffBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["active","code","discountType","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.promotions.disable":{"post":{"operationId":"execute_marketing_promotions_disable","summary":"Deactivate a promotion","description":"Disable an owned promotion and return its details and usage summary.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"promotionId":{"type":"string","x-convex-table":"promotions"}},"required":["promotionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.promotions.list":{"post":{"operationId":"execute_marketing_promotions_list","summary":"List promotions","description":"Return workspace promotions with redemption counts and matched-invoice discount impact.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/marketing.promotions.update":{"post":{"operationId":"execute_marketing_promotions_update","summary":"Update a promotion","description":"Replace an owned promotion's editable settings and return its usage summary.","tags":["marketing"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"active":{"type":"boolean"},"amountOffCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountOffCurrency":{"type":"string"},"code":{"type":"string"},"discountType":{"anyOf":[{"const":"percent"},{"const":"fixed"}]},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxRedemptions":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumAmountCurrency":{"type":"string"},"name":{"type":"string"},"percentOffBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionId":{"type":"string","x-convex-table":"promotions"}},"required":["active","code","discountType","name","promotionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.availability.get":{"post":{"operationId":"execute_marketplace_availability_get","summary":"Get listing availability","description":"Return open booking slots by local date for a published marketplace listing.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"dayCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"slotMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"slug":{"type":"string"},"startDate":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.cancel":{"post":{"operationId":"execute_marketplace_bookingPayments_cancel","summary":"Cancel a booking payment attempt","description":"Prove provider cancellation before releasing the reservation and allowing another payment.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.get":{"post":{"operationId":"execute_marketplace_bookingPayments_get","summary":"Read booking payment status","description":"Read persisted payment and fulfillment status after webhook settlement.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.pay":{"post":{"operationId":"execute_marketplace_bookingPayments_pay","summary":"Pay a booking","description":"Confirm a one-time shared payment token against the frozen quote, or return a human handoff.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.quote":{"post":{"operationId":"execute_marketplace_bookingPayments_quote","summary":"Preview a booking payment","description":"Return provisional pricing and available payment modes without reserving or charging.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"handoffUrl":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","currency","handoffUrl","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.recover":{"post":{"operationId":"execute_marketplace_bookingPayments_recover","summary":"Reconcile a booking payment attempt","description":"Find the original account-bound intent without creating a replacement charge.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.requestContactVerification":{"post":{"operationId":"execute_marketplace_bookingPayments_requestContactVerification","summary":"Send purchase contact verification","description":"Send an email challenge bound to the public selection, pricing and explicit purchase consent.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"email":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedPricingHash":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"purchaseConsent":{"type":"boolean"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["email","endMs","expectedPricingHash","purchaseConsent","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"challengeId":{"type":"string","x-convex-table":"guestPaymentConsents"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sent":{"type":"boolean"}},"required":["challengeId","expiresAt","sent"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.reserve":{"post":{"operationId":"execute_marketplace_bookingPayments_reserve","summary":"Reserve a booking payment","description":"Freeze the authoritative amount, reservation, buyer and seller account before delegating payment.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedPricingHash":{"type":"string"},"guestCapability":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","expectedPricingHash","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},{"type":"object","properties":{"handoffUrl":{"type":"string"},"quoteId":{"type":"null"},"reason":{"type":"string"},"status":{"const":"handoff_required"}},"required":["handoffUrl","quoteId","reason","status"],"additionalProperties":false}]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.bookingPayments.verifyContact":{"post":{"operationId":"execute_marketplace_bookingPayments_verifyContact","summary":"Verify purchase contact","description":"Consume the challenge once and issue a short-lived purchase capability.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"challengeId":{"type":"string","x-convex-table":"guestPaymentConsents"},"verificationCode":{"type":"string"}},"required":["challengeId","verificationCode"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expiresAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"guestCapability":{"anyOf":[{"type":"string"},{"type":"null"}]},"verified":{"type":"boolean"}},"required":["expiresAt","guestCapability","verified"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.checkoutConfirmations.get":{"post":{"operationId":"execute_marketplace_checkoutConfirmations_get","summary":"Get checkout confirmation","description":"Return marketplace booking details, guest email, address, payment breakdown, review state, and calendar content.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationId":{"type":"string"}},"required":["confirmationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.commerce.get":{"post":{"operationId":"execute_marketplace_commerce_get","summary":"Get commerce offer","description":"Return public offer details, pricing, tax, fulfillment location, and approval requirements, or null.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"offerId":{"type":"string","x-convex-table":"offers"}},"required":["offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"type":"string"},"locationName":{"anyOf":[{"type":"string"},{"type":"null"}]},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"nextSessionStart":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"offerId":{"type":"string","x-convex-table":"offers"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"previewAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"remotePolicy":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiresApproval":{"type":"boolean"},"resourceName":{"type":"string"},"saleKind":{"anyOf":[{"const":"rental"},{"const":"service"},{"const":"pass"},{"const":"event"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantName":{"type":"string"},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"timezone":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["city","country","description","locationName","minimumMinutes","name","nextSessionStart","offerId","previewAmountCents","quantity","remotePolicy","requiresApproval","resourceName","saleKind","tax","tenantName","terms","timezone","version"],"additionalProperties":false},{"type":"null"}]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.commerce.quote":{"post":{"operationId":"execute_marketplace_commerce_quote","summary":"Quote a commerce purchase","description":"Return current price, tax, fulfillment terms, and a reviewedTerms digest for a purchase selection.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"selection":{"anyOf":[{"type":"object","properties":{"eventId":{"type":"string","x-convex-table":"eventSessions"},"kind":{"const":"event"}},"required":["eventId","kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"pass"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["kind","validFrom"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"resource"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["kind","quantity","validFrom","validUntil"],"additionalProperties":false}]}},"required":["expectedVersion","offerId","selection"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"name":{"type":"string"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"},"reviewedTerms":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"timeZone":{"type":"string"}},"required":["amountCents","currency","endMs","name","quantity","requiresApproval","reviewedTerms","startMs","tax","timeZone"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.commerce.search":{"post":{"operationId":"execute_marketplace_commerce_search","summary":"Browse commerce offers","description":"Return a page of publicly available rentals, services, passes, or events.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"kind":{"anyOf":[{"const":"rental"},{"const":"service"},{"const":"pass"},{"const":"event"}]},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"search":{"type":"string"}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"type":"string"},"locationName":{"anyOf":[{"type":"string"},{"type":"null"}]},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"nextSessionStart":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"offerId":{"type":"string","x-convex-table":"offers"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"previewAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"remotePolicy":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiresApproval":{"type":"boolean"},"resourceName":{"type":"string"},"saleKind":{"anyOf":[{"const":"rental"},{"const":"service"},{"const":"pass"},{"const":"event"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantName":{"type":"string"},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"timezone":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["city","country","description","locationName","minimumMinutes","name","nextSessionStart","offerId","previewAmountCents","quantity","remotePolicy","requiresApproval","resourceName","saleKind","tax","tenantName","terms","timezone","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.confirmations.get":{"post":{"operationId":"execute_marketplace_confirmations_get","summary":"Get guest confirmation","description":"Return marketplace booking confirmation details, guest email, payment state, and calendar content.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationId":{"type":"string"}},"required":["confirmationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.discovery.search":{"post":{"operationId":"execute_marketplace_discovery_search","summary":"Search marketplace by need","description":"Parse a natural-language need and return verified listing fits, near misses, or clarification prompts.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"anyOf":[{"const":"en"},{"const":"fr"}]},"need":{"type":"string"}},"required":["need"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.eventSessions.list":{"post":{"operationId":"execute_marketplace_eventSessions_list","summary":"List offer event sessions","description":"Return a page of future open sessions for a public event offer.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["expectedVersion","offerId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"eventSessions"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"description":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"open"},{"const":"cancelled"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","capacity","createdAt","currency","description","endMs","offerId","offerVersion","startMs","status","tenantId","title","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.guestCheckout.quote":{"post":{"operationId":"execute_marketplace_guestCheckout_quote","summary":"Quote a space booking","description":"Return a booking price breakdown, available add-ons, and payment or manual-confirmation availability.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.guestReviews.create":{"post":{"operationId":"execute_marketplace_guestReviews_create","summary":"Review a guest booking","description":"Publish a review for a completed and paid marketplace booking identified by its confirmation capability.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"confirmationId":{"type":"string"},"rating":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["body","confirmationId","rating"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.hosts.getAvailability":{"post":{"operationId":"execute_marketplace_hosts_getAvailability","summary":"Get host signup availability","description":"Return whether independent-host signup is configured, with commission, currency, and space limit.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"commissionBps":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"currency":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"maxSpaces":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["commissionBps","currency","enabled","maxSpaces"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.legalDocuments.get":{"post":{"operationId":"execute_marketplace_legalDocuments_get","summary":"Get a legal document","description":"Return a published or retired legal revision's localized title, body, hash, and revision metadata.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"anyOf":[{"const":"en"},{"const":"fr"}]},"revisionId":{"type":"string","x-convex-table":"legalDocumentRevisions"}},"required":["locale","revisionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.legalRequirements.get":{"post":{"operationId":"execute_marketplace_legalRequirements_get","summary":"Get purchase legal requirements","description":"Return the legal documents and acceptance requirements applicable to a public commerce offer.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"anyOf":[{"const":"en"},{"const":"fr"}]},"offerId":{"type":"string","x-convex-table":"offers"}},"required":["locale","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.listingCards.get":{"post":{"operationId":"execute_marketplace_listingCards_get","summary":"Get listing cards with media","description":"Enrich up to six listing slugs with current detail photos and instant-book eligibility.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slugs":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":6}},"required":["slugs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cards":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"found":{"type":"boolean"},"photos":{"type":"array","items":{"type":"object","properties":{"alt":{"type":"string"},"url":{"type":"string"},"storageId":{"type":"string","x-convex-table":"_storage"},"width":{"type":"number"},"height":{"type":"number"},"sources":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"width":{"type":"number"}},"required":["url","width"],"additionalProperties":false}}},"required":["alt","url"],"additionalProperties":false}},"instantBook":{"type":"boolean"}},"required":["slug","found"],"additionalProperties":false}}},"required":["cards"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.listingReviews.list":{"post":{"operationId":"execute_marketplace_listingReviews_list","summary":"List a page of listing reviews","description":"Return a cursor page of published reviews for a public listing.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string"},"listingId":{"type":"string","x-convex-table":"listings"},"pageSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["listingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"authorName":{"type":"string"},"body":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rating":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reviewId":{"type":"string","x-convex-table":"reviews"}},"required":["authorName","body","createdAt","rating","reviewId"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.listings.get":{"post":{"operationId":"execute_marketplace_listings_get","summary":"Get marketplace listing","description":"Return a published listing with photos, amenities, pricing, location, related listings, and canonical redirect information.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.listings.list":{"post":{"operationId":"execute_marketplace_listings_list","summary":"List matching marketplace listings","description":"Return a bounded set of published listings matching search filters.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amenityKeys":{"type":"array","items":{"type":"string"}},"city":{"type":"string"},"date":{"type":"string"},"endMinute":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxLat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxLng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minCapacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minLat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minLng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sortBy":{"anyOf":[{"const":"capacity"},{"const":"price"},{"const":"rating"}]},"spaceType":{"type":"string"},"startMinute":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.listings.search":{"post":{"operationId":"execute_marketplace_listings_search","summary":"Search marketplace listings","description":"Return a cursor page of published listings matching location, capacity, amenities, price, and availability filters.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amenityKeys":{"type":"array","items":{"type":"string"}},"city":{"type":"string"},"cursor":{"type":"string"},"date":{"type":"string"},"endMinute":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxLat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxLng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minCapacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minLat":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minLng":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pageSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sortBy":{"anyOf":[{"const":"capacity"},{"const":"price"},{"const":"rating"}]},"spaceType":{"type":"string"},"startMinute":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.reviews.list":{"post":{"operationId":"execute_marketplace_reviews_list","summary":"List recent listing reviews","description":"Return up to 20 published reviews for a public listing.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"listingId":{"type":"string","x-convex-table":"listings"}},"required":["listingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.spaceOffers.list":{"post":{"operationId":"execute_marketplace_spaceOffers_list","summary":"List space booking offers","description":"Return public offer choices, channel IDs, versions, pricing terms, and rules for a marketplace or tenant-site space.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"source":{"anyOf":[{"const":"marketplace"},{"const":"tenant"}]}},"required":["slug","source"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"description":{"type":"string"},"endsAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"startsAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","description","endsAt","name","offerId","rules","startsAt","terms","version"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.support.send":{"post":{"operationId":"execute_marketplace_support_send","summary":"Send a marketplace support request","description":"Create a guest support ticket and email the fixed support inbox when Resend is configured.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"subject":{"type":"string"}},"required":["body","email","name","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.workspacePlans.get":{"post":{"operationId":"execute_marketplace_workspacePlans_get","summary":"Get a workspace plan","description":"Return the active workspace subscription plan summary matching a normalized slug.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planSlug":{"type":"string"}},"required":["planSlug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/marketplace.workspacePlans.list":{"post":{"operationId":"execute_marketplace_workspacePlans_list","summary":"List workspace plans","description":"Return active, non-deleted workspace subscription plan summaries in catalog order.","tags":["marketplace"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/members.benefits.listBalances":{"post":{"operationId":"execute_members_benefits_listBalances","summary":"List membership benefit balances","description":"Return up to 100 benefit grants for a subscription, newest first.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"memberBenefitGrants"},"benefitKey":{"type":"string"},"companyId":{"type":"string","x-convex-table":"companies"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"issuedQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"label":{"type":"string"},"ledgerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"passId":{"anyOf":[{"type":"string","x-convex-table":"dayPasses"},{"type":"null"}]},"periodStart":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"remainingQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"sourceKey":{"type":"string"},"subscriptionId":{"anyOf":[{"type":"string","x-convex-table":"memberSubscriptions"},{"type":"null"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["_creationTime","_id","benefitKey","createdAt","currency","expiresAt","issuedQuantity","label","memberId","periodStart","propertyIds","remainingQuantity","resourceIds","sourceKey","tenantId","unit"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.benefits.listLedger":{"post":{"operationId":"execute_members_benefits_listLedger","summary":"List membership benefit ledger","description":"Return a paginated subscription benefit ledger, newest first.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["paginationOpts","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"memberBenefitLedger"},"actorUserId":{"type":"string","x-convex-table":"users"},"balanceAfter":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookingId":{"type":"string","x-convex-table":"bookings"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"grantId":{"type":"string","x-convex-table":"memberBenefitGrants"},"keyRef":{"type":"string"},"kind":{"anyOf":[{"const":"issue"},{"const":"spend"},{"const":"restore"},{"const":"expire"},{"const":"revoke"}]},"memberId":{"type":"string","x-convex-table":"members"},"passId":{"anyOf":[{"type":"string","x-convex-table":"dayPasses"},{"type":"null"}]},"passRedemptionId":{"type":"string","x-convex-table":"passRedemptions"},"propertyId":{"type":"string","x-convex-table":"properties"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"sourceKey":{"type":"string"},"subscriptionId":{"anyOf":[{"type":"string","x-convex-table":"memberSubscriptions"},{"type":"null"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["_creationTime","_id","balanceAfter","createdAt","currency","grantId","kind","memberId","quantity","reason","sourceKey","tenantId","unit"],"additionalProperties":false}}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.benefits.redeem":{"post":{"operationId":"execute_members_benefits_redeem","summary":"Redeem membership benefits","description":"Deduct eligible membership units and return the benefit ledger entry ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"grantId":{"type":"string","x-convex-table":"memberBenefitGrants"},"idempotencyKey":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"propertyId":{"type":"string","x-convex-table":"properties"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["grantId","idempotencyKey","memberId","propertyId","reason"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"memberBenefitLedger"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-checkin"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companies.create":{"post":{"operationId":"execute_members_companies_create","summary":"Create a company","description":"Create a tenant company with contact and booking policies and return its ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"anyOf":[{"type":"string"},{"type":"null"}]},"allowEmployeeBookings":{"type":"boolean"},"billingEmail":{"anyOf":[{"type":"string"},{"type":"null"}]},"creditLimitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentTerms":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"requireApproval":{"type":"boolean"}},"required":["allowEmployeeBookings","name","requireApproval"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companies.delete":{"post":{"operationId":"execute_members_companies_delete","summary":"Delete a company","description":"Soft-delete a company, detach its active members, and return the company ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"}},"required":["companyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companies.list":{"post":{"operationId":"execute_members_companies_list","summary":"List companies","description":"Return searchable tenant companies with associated members, booking history, totals, and counts.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"search":{"type":"string"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companies.update":{"post":{"operationId":"execute_members_companies_update","summary":"Update a company","description":"Replace company contact, billing, and booking policy fields and return the company ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"anyOf":[{"type":"string"},{"type":"null"}]},"allowEmployeeBookings":{"type":"boolean"},"billingEmail":{"anyOf":[{"type":"string"},{"type":"null"}]},"companyId":{"type":"string","x-convex-table":"companies"},"creditLimitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentTerms":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"requireApproval":{"type":"boolean"}},"required":["allowEmployeeBookings","companyId","name","requireApproval"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companySeats.assign":{"post":{"operationId":"execute_members_companySeats_assign","summary":"Assign a company seat","description":"Assign or reactivate a member's seat on an eligible company subscription and return the seat ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["memberId","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"companySeats"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companySeats.list":{"post":{"operationId":"execute_members_companySeats_list","summary":"List company seats","description":"Return up to 100 company-seat records for a tenant-owned subscription.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"companySeats"},"active":{"type":"boolean"},"assignedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"assignedByUserId":{"type":"string","x-convex-table":"users"},"companyId":{"type":"string","x-convex-table":"companies"},"memberId":{"type":"string","x-convex-table":"members"},"removedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["_creationTime","_id","active","assignedAt","assignedByUserId","companyId","memberId","subscriptionId","tenantId"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.companySeats.revoke":{"post":{"operationId":"execute_members_companySeats_revoke","summary":"Remove a company seat","description":"Deactivate a company seat and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"seatId":{"type":"string","x-convex-table":"companySeats"}},"required":["seatId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.credits.adjust":{"post":{"operationId":"execute_members_credits_adjust","summary":"Adjust member credits","description":"Add or deduct stored monetary credits and return the new balance, currency, and member ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"reason":{"type":"string"},"type":{"anyOf":[{"const":"add"},{"const":"deduct"}]}},"required":["amountCents","memberId","reason","type"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.credits.getBalance":{"post":{"operationId":"execute_members_credits_getBalance","summary":"Get member credit balance","description":"Return a member's stored credit balance, currency, and ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"}},"required":["memberId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.dashboard.getOverview":{"post":{"operationId":"execute_members_dashboard_getOverview","summary":"Get members overview","description":"Return bounded member, acquisition, activity, subscription, and lead metrics with attention lists.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":["billing-read","report-read"]}},"/operations/members.dashboard.getSummary":{"post":{"operationId":"execute_members_dashboard_getSummary","summary":"Get member summary","description":"Return a member's acquisition, visits, bookings, membership, and portal-link summary.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["memberId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":["billing-read","report-read"]}},"/operations/members.groups.create":{"post":{"operationId":"execute_members_groups_create","summary":"Create a member group","description":"Create a tenant member group with optional discount and space-type restrictions and return its ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"allowedSpaceTypes":{"type":"array","items":{"type":"string"}},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"discountPercent":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"}},"required":["name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.groups.delete":{"post":{"operationId":"execute_members_groups_delete","summary":"Delete a member group","description":"Soft-delete a group, remove it from active member profiles, and return the group ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"groupId":{"type":"string","x-convex-table":"memberGroups"}},"required":["groupId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.groups.list":{"post":{"operationId":"execute_members_groups_list","summary":"List member groups","description":"Return active tenant groups with discount rules, allowed space types, and member counts.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.groups.update":{"post":{"operationId":"execute_members_groups_update","summary":"Update a member group","description":"Replace group details, discount, and space restrictions and return the group ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"allowedSpaceTypes":{"type":"array","items":{"type":"string"}},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"discountPercent":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"name":{"type":"string"}},"required":["groupId","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.membershipPlans.list":{"post":{"operationId":"execute_members_membershipPlans_list","summary":"List membership plans","description":"Return paginated tenant membership plans, newest first, excluding deleted plans.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"membershipPlans"},"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"draft"},{"const":"published"},{"const":"archived"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","benefits","createdAt","currency","description","interval","name","priceCents","propertyIds","seatLimit","status","tenantId","updatedAt","version"],"additionalProperties":false}}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.membershipPlans.save":{"post":{"operationId":"execute_members_membershipPlans_save","summary":"Save a membership plan","description":"Create or update membership pricing and benefit terms and return the plan ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","priceCents","propertyIds","seatLimit"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"membershipPlans"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.membershipPlans.setStatus":{"post":{"operationId":"execute_members_membershipPlans_setStatus","summary":"Set membership plan status (published)","description":"Publish or archive a membership plan, advance its version, and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"membershipPlans"}},"required":["expectedVersion","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.membershipPlans.setStatus.archived":{"post":{"operationId":"execute_members_membershipPlans_setStatus_archived","summary":"Set membership plan status (archived)","description":"Publish or archive a membership plan, advance its version, and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"membershipPlans"}},"required":["expectedVersion","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.bulkUpdate":{"post":{"operationId":"execute_members_profiles_bulkUpdate","summary":"Update selected members","description":"Add or remove a tag or group on selected members and return per-member outcomes and counts.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"change":{"anyOf":[{"type":"object","properties":{"kind":{"const":"addTag"},"tag":{"type":"string"}},"required":["kind","tag"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"removeTag"},"tag":{"type":"string"}},"required":["kind","tag"],"additionalProperties":false},{"type":"object","properties":{"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"const":"addGroup"}},"required":["groupId","kind"],"additionalProperties":false},{"type":"object","properties":{"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"const":"removeGroup"}},"required":["groupId","kind"],"additionalProperties":false}]},"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}}},"required":["change","memberIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.create":{"post":{"operationId":"execute_members_profiles_create","summary":"Create a member","description":"Create a tenant member profile and return the member document and ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companyId":{"anyOf":[{"type":"string","x-convex-table":"companies"},{"type":"null"}]},"customFields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"email":{"type":"string"},"groupIds":{"type":"array","items":{"type":"string","x-convex-table":"memberGroups"}},"name":{"type":"string"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}}},"required":["email","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-create"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.delete":{"post":{"operationId":"execute_members_profiles_delete","summary":"Delete a member","description":"Soft-delete a tenant member profile and return its ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"}},"required":["memberId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-delete"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.get":{"post":{"operationId":"execute_members_profiles_get","summary":"Get a member","description":"Return a member profile, company and group context, and sorted booking history.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"sortBy":{"anyOf":[{"const":"startMs"},{"const":"status"},{"const":"priceCents"}]},"sortDirection":{"anyOf":[{"const":"asc"},{"const":"desc"}]}},"required":["memberId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":["billing-read","report-read"]}},"/operations/members.profiles.getReferenceData":{"post":{"operationId":"execute_members_profiles_getReferenceData","summary":"Get member reference data","description":"Return tenant company and group options, existing tags, and space types for member editing.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.import":{"post":{"operationId":"execute_members_profiles_import","summary":"Import members","description":"Validate or import member rows and return row outcomes, counts, and created company and group counts.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"dryRun":{"type":"boolean"},"rows":{"type":"array","items":{"type":"object","properties":{"companyName":{"type":"string"},"creditBalanceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"customFields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"email":{"type":"string"},"groupNames":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"notes":{"type":"string"},"phone":{"type":"string"},"rowNumber":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tags":{"type":"array","items":{"type":"string"}}},"required":["rowNumber"],"additionalProperties":false}}},"required":["rows"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-import"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.list":{"post":{"operationId":"execute_members_profiles_list","summary":"List members","description":"Return filtered tenant members with contact details, stored credit, booking counts, and directory reference data.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"search":{"type":"string"},"tag":{"type":"string"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.profiles.update":{"post":{"operationId":"execute_members_profiles_update","summary":"Update a member","description":"Update a tenant member's profile, company, groups, tags, and custom fields and return the updated document and ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companyId":{"anyOf":[{"type":"string","x-convex-table":"companies"},{"type":"null"}]},"customFields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false}},"email":{"type":"string"},"groupIds":{"type":"array","items":{"type":"string","x-convex-table":"memberGroups"}},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}}},"required":["customFields","email","groupIds","memberId","name","tags"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.quotes.recordAcceptance":{"post":{"operationId":"execute_members_quotes_recordAcceptance","summary":"Accept saved quote terms","description":"Record version-bound recipient acceptance evidence and convert the quote without charging.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"evidence":{"type":"string"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"termsAccepted":{"type":"boolean"},"termsVersion":{"type":"string"}},"required":["evidence","expectedVersion","quoteId","termsAccepted","termsVersion"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"anyOf":[{"type":"string","x-convex-table":"bookings"},{"type":"null"}]},"handoffUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"invoiceId":{"anyOf":[{"type":"string","x-convex-table":"invoices"},{"type":"null"}]},"paymentMode":{"type":"string"},"planId":{"anyOf":[{"type":"string","x-convex-table":"invoicePaymentPlans"},{"type":"null"}]},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"subscriptionId":{"anyOf":[{"type":"string","x-convex-table":"memberSubscriptions"},{"type":"null"}]}},"required":["bookingId","handoffUrl","invoiceId","paymentMode","planId","quoteId","subscriptionId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["acceptanceEvidence","sharedPaymentToken","sessionUrl","checkoutUrl"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage","member-update","booking-create"],"x-keyvra-conditional-permissions":[]}},"/operations/members.quotes.set":{"post":{"operationId":"execute_members_quotes_set","summary":"Save sales quote","description":"Create or revise a draft booking or membership quote with price, benefits, and tax snapshots, returning its id.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"depositCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadId":{"type":"string","x-convex-table":"salesLeads"},"note":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"target":{"anyOf":[{"type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"const":"booking"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","kind","offerId","offerVersion","spaceId","startMs"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"planVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["kind","planId","planVersion"],"additionalProperties":false}]},"title":{"type":"string"}},"required":["depositCents","expiresAt","leadId","note","target","title"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"salesQuotes"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-create","member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.sales.getChoices":{"post":{"operationId":"execute_members_sales_getChoices","summary":"Get sales reference choices","description":"Return tenant properties, published eligible offers, enabled channels, published membership plans, and truncation status.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","x-convex-table":"channels"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"offers":{"type":"array","items":{"type":"object","properties":{"channelIds":{"type":"array","items":{"type":"string","x-convex-table":"channels"}},"id":{"type":"string","x-convex-table":"offers"},"name":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelIds","id","name","spaceId","version"],"additionalProperties":false}},"plans":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","x-convex-table":"membershipPlans"},"name":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["id","name","version"],"additionalProperties":false}},"properties":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","x-convex-table":"properties"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["channels","offers","plans","properties","truncated"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesActivities.create":{"post":{"operationId":"execute_members_salesActivities_create","summary":"Add a lead activity","description":"Record a lead note or schedule a tour or trial appointment and return its activity ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appointmentKind":{"anyOf":[{"const":"tour"},{"const":"trial"}]},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadId":{"type":"string","x-convex-table":"salesLeads"},"note":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["leadId","note"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"salesActivities"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesActivities.list":{"post":{"operationId":"execute_members_salesActivities_list","summary":"List lead activities","description":"Return paginated activity and appointment records for a tenant-owned sales lead.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"leadId":{"type":"string","x-convex-table":"salesLeads"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["leadId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"salesActivities"},"actorUserId":{"type":"string","x-convex-table":"users"},"appointmentKind":{"anyOf":[{"const":"tour"},{"const":"trial"}]},"appointmentStatus":{"anyOf":[{"const":"scheduled"},{"const":"completed"},{"const":"canceled"}]},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"anyOf":[{"const":"note"},{"const":"stage"},{"const":"appointment"},{"const":"proposal"},{"const":"conversion"}]},"leadId":{"type":"string","x-convex-table":"salesLeads"},"note":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","kind","leadId","note","tenantId","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesAppointments.complete":{"post":{"operationId":"execute_members_salesAppointments_complete","summary":"Finish a sales appointment","description":"Mark a tenant sales appointment completed or canceled and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"activityId":{"type":"string","x-convex-table":"salesActivities"},"status":{"anyOf":[{"const":"completed"},{"const":"canceled"}]}},"required":["activityId","status"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesLeads.create":{"post":{"operationId":"execute_members_salesLeads_create","summary":"Create a sales lead","description":"Create a tenant sales lead with an assigned staff owner and return its ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"email":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"ownerUserId":{"type":"string","x-convex-table":"users"},"phone":{"type":"string"},"source":{"anyOf":[{"const":"manual"},{"const":"website"},{"const":"marketplace"},{"const":"partner"}]}},"required":["email","name","source"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"salesLeads"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-create"],"x-keyvra-conditional-permissions":["member-update"]}},"/operations/members.salesLeads.list":{"post":{"operationId":"execute_members_salesLeads_list","summary":"List sales leads","description":"Return paginated tenant leads, optionally filtered by stage, excluding deleted records.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"stage":{"anyOf":[{"const":"lead"},{"const":"tour"},{"const":"trial"},{"const":"proposal"},{"const":"won"},{"const":"lost"}]}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"salesLeads"},"companyId":{"type":"string","x-convex-table":"companies"},"convertedBookingId":{"type":"string","x-convex-table":"bookings"},"convertedSubscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"email":{"type":"string"},"lossReason":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"ownerUserId":{"type":"string","x-convex-table":"users"},"phone":{"type":"string"},"requestKey":{"type":"string"},"source":{"anyOf":[{"const":"manual"},{"const":"website"},{"const":"marketplace"},{"const":"partner"}]},"stage":{"anyOf":[{"const":"lead"},{"const":"tour"},{"const":"trial"},{"const":"proposal"},{"const":"won"},{"const":"lost"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","email","name","ownerUserId","source","stage","tenantId","updatedAt","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesLeads.setStage":{"post":{"operationId":"execute_members_salesLeads_setStage","summary":"Change a lead stage","description":"Change a lead's stage and record a stage activity, then return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadId":{"type":"string","x-convex-table":"salesLeads"},"note":{"type":"string"},"stage":{"anyOf":[{"const":"lead"},{"const":"tour"},{"const":"trial"},{"const":"proposal"},{"const":"won"},{"const":"lost"}]}},"required":["expectedVersion","leadId","note","stage"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesQuotes.list":{"post":{"operationId":"execute_members_salesQuotes_list","summary":"List sales quotes","description":"Return paginated quotes for a workspace sales lead.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"leadId":{"type":"string","x-convex-table":"salesLeads"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["leadId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"salesQuotes"},"acceptanceEvidence":{"type":"string"},"acceptedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"acceptedByMemberId":{"type":"string","x-convex-table":"members"},"acceptedByUserId":{"type":"string","x-convex-table":"users"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"convertedBookingId":{"type":"string","x-convex-table":"bookings"},"convertedSubscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"depositCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"leadId":{"type":"string","x-convex-table":"salesLeads"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"draft"},{"const":"sent"},{"const":"accepted"},{"const":"canceled"}]},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"anyOf":[{"type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"const":"booking"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"snapshot":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"capturedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"currency":{"type":"string"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"remoteFulfillmentPolicy":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","capturedAt","channelId","currency","name","offerId","quantity","resourceId","rules","terms","version"],"additionalProperties":false},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","kind","offerId","offerVersion","snapshot","spaceId","startMs"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"planVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"snapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","priceCents","propertyIds","seatLimit"],"additionalProperties":false}},"required":["kind","planId","planVersion","snapshot"],"additionalProperties":false}]},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRateName":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","benefitCents","createdAt","currency","depositCents","expiresAt","leadId","memberId","note","salesChannel","status","subtotalCents","target","taxCents","taxInclusive","taxRateBps","taxRateId","taxRateName","tenantId","title","totalCents","updatedAt","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.salesQuotes.set":{"post":{"operationId":"execute_members_salesQuotes_set","summary":"Set a sales quote status","description":"Mark an unaccepted quote sent or canceled and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"status":{"anyOf":[{"const":"sent"},{"const":"canceled"}]}},"required":["expectedVersion","quoteId","status"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.subscriptions.changePlan":{"post":{"operationId":"execute_members_subscriptions_changePlan","summary":"Change a membership plan","description":"Replace a pending membership's plan snapshot and tax calculation and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["expectedVersion","planId","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.subscriptions.create":{"post":{"operationId":"execute_members_subscriptions_create","summary":"Create a membership subscription","description":"Create or reuse a pending manual-invoice membership and return its subscription ID.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"memberId":{"type":"string","x-convex-table":"members"},"planId":{"type":"string","x-convex-table":"membershipPlans"}},"required":["memberId","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"memberSubscriptions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.subscriptions.list":{"post":{"operationId":"execute_members_subscriptions_list","summary":"List membership subscriptions","description":"Return paginated tenant subscriptions, optionally restricted to a member, excluding deleted records.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberId":{"type":"string","x-convex-table":"members"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"memberSubscriptions"},"billingMethod":{"anyOf":[{"const":"manual_invoice"},{"const":"stripe"}]},"billingTax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"cancelAtPeriodEnd":{"type":"boolean"},"canceledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"companyId":{"type":"string","x-convex-table":"companies"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastPaymentFailureAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastPaymentFailureInvoiceId":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"pausedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pendingPlanEffectiveAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pendingPlanId":{"type":"string","x-convex-table":"membershipPlans"},"pendingPlanSnapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","priceCents","propertyIds","seatLimit"],"additionalProperties":false},"pendingPlanTax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"pendingPlanVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"periodEnd":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"periodStart":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"planSnapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","priceCents","propertyIds","seatLimit"],"additionalProperties":false},"planVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerEventCreated":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sourceQuoteId":{"type":"string","x-convex-table":"salesQuotes"},"status":{"anyOf":[{"const":"pending"},{"const":"trialing"},{"const":"active"},{"const":"past_due"},{"const":"paused"},{"const":"canceled"}]},"stripeAccountId":{"type":"string"},"stripeCheckoutAttempt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"stripeCustomerId":{"type":"string"},"stripeScheduleId":{"type":"string"},"stripeSubscriptionId":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"trialUsed":{"type":"boolean"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","billingMethod","cancelAtPeriodEnd","createdAt","memberId","planId","planSnapshot","planVersion","status","tenantId","updatedAt","version"],"additionalProperties":false}}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["stripeCheckoutUrl","stripeCheckoutSessionId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/members.subscriptions.transition":{"post":{"operationId":"execute_members_subscriptions_transition","summary":"Change membership status","description":"Pause, resume, cancel, or undo a scheduled cancellation for a membership and return null.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"transition":{"anyOf":[{"const":"pause"},{"const":"resume"},{"const":"cancel_now"},{"const":"cancel_at_end"},{"const":"keep_active"}]}},"required":["expectedVersion","subscriptionId","transition"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/members.tags.bulkAdd":{"post":{"operationId":"execute_members_tags_bulkAdd","summary":"Add a tag to members","description":"Add a normalized tag to selected members and return per-member outcomes and aggregate counts.","tags":["members"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"memberIds":{"type":"array","items":{"type":"string","x-convex-table":"members"}},"tag":{"type":"string"}},"required":["memberIds","tag"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-update"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.inbox.countUnread":{"post":{"operationId":"execute_notifications_inbox_countUnread","summary":"Count own unread notifications","description":"Return a bounded count of the caller's nondeleted unread notifications.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.inbox.list":{"post":{"operationId":"execute_notifications_inbox_list","summary":"List own notifications","description":"Return the caller's recent nondeleted notifications.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.inbox.listPage":{"post":{"operationId":"execute_notifications_inbox_listPage","summary":"List own notification page","description":"Return a numbered page of the caller's notifications with category, unread, and count information.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"anyOf":[{"const":"all"},{"const":"booking"},{"const":"operations"},{"const":"billing"},{"const":"system"}]},"page":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pageSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unreadOnly":{"type":"boolean"}},"required":["category","page","pageSize","unreadOnly"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.inbox.markAllRead":{"post":{"operationId":"execute_notifications_inbox_markAllRead","summary":"Mark own notifications read","description":"Mark every unread notification in the selected category as read and return the updated count.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"anyOf":[{"const":"all"},{"const":"booking"},{"const":"operations"},{"const":"billing"},{"const":"system"}]}},"required":["category"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.inbox.markRead":{"post":{"operationId":"execute_notifications_inbox_markRead","summary":"Mark own notification read","description":"Mark a notification as read and return the updated notification record.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notificationId":{"type":"string","x-convex-table":"notifications"}},"required":["notificationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.inbox.setReadState":{"post":{"operationId":"execute_notifications_inbox_setReadState","summary":"Set own notification read state","description":"Mark a notification read or unread and return a save acknowledgment.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notificationId":{"type":"string","x-convex-table":"notifications"},"read":{"type":"boolean"}},"required":["notificationId","read"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.messages.send":{"post":{"operationId":"execute_notifications_messages_send","summary":"Send staff notification","description":"Create a notification for an eligible tenant user and optionally schedule email and push delivery.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"ctaUrl":{"type":"string"},"data":{},"emailBody":{"type":"string"},"emailSubject":{"type":"string"},"emailTo":{"type":"string"},"eventType":{"type":"string"},"idempotencyKey":{"type":"string"},"recipientUserId":{"type":"string","x-convex-table":"users"},"sendEmail":{"type":"boolean"},"title":{"type":"string"}},"required":["eventType","recipientUserId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-create"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.preferences.get":{"post":{"operationId":"execute_notifications_preferences_get","summary":"Get notification preferences","description":"Return the caller's channel and digest preferences, tenant reminder offsets, and delivery configuration readiness.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.preferences.set":{"post":{"operationId":"execute_notifications_preferences_set","summary":"Set own notification preferences","description":"Save channel preferences and optional digest settings for the caller.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"categories":{"type":"object","properties":{"billing":{"type":"object","properties":{"email":{"type":"boolean"},"inApp":{"type":"boolean"},"push":{"type":"boolean"}},"required":["email","inApp","push"],"additionalProperties":false},"booking":{"type":"object","properties":{"email":{"type":"boolean"},"inApp":{"type":"boolean"},"push":{"type":"boolean"}},"required":["email","inApp","push"],"additionalProperties":false},"operations":{"type":"object","properties":{"email":{"type":"boolean"},"inApp":{"type":"boolean"},"push":{"type":"boolean"}},"required":["email","inApp","push"],"additionalProperties":false},"system":{"type":"object","properties":{"email":{"type":"boolean"},"inApp":{"type":"boolean"},"push":{"type":"boolean"}},"required":["email","inApp","push"],"additionalProperties":false}},"required":["billing","booking","operations","system"],"additionalProperties":false},"dailyDigestEnabled":{"type":"boolean"},"digestCadence":{"anyOf":[{"const":"daily"},{"const":"weekdays"},{"const":"weekly"}]},"digestDeliveryHourLocal":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["categories"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.reminders.set":{"post":{"operationId":"execute_notifications_reminders_set","summary":"Set booking reminder offsets","description":"Save the tenant's native booking reminder schedule.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingReminderOffsetsMinutes":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}}},"required":["bookingReminderOffsetsMinutes"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.templates.get":{"post":{"operationId":"execute_notifications_templates_get","summary":"Get notification template","description":"Return the effective template, preview, source, and allowed variables for an event and channel.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channel":{"anyOf":[{"const":"in_app"},{"const":"email"}]},"eventType":{"type":"string"}},"required":["channel","eventType"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.templates.list":{"post":{"operationId":"execute_notifications_templates_list","summary":"List notification templates","description":"Return effective notification templates with previews, sources, and supported variables.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.templates.preview":{"post":{"operationId":"execute_notifications_templates_preview","summary":"Preview notification template","description":"Validate a proposed template and render it with sample event data without saving or sending it.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"channel":{"anyOf":[{"const":"in_app"},{"const":"email"}]},"eventType":{"type":"string"},"subject":{"type":"string"}},"required":["body","channel","eventType","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.templates.reset":{"post":{"operationId":"execute_notifications_templates_reset","summary":"Reset notification template","description":"Remove an active tenant override so platform or catalog defaults become effective.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channel":{"anyOf":[{"const":"in_app"},{"const":"email"}]},"eventType":{"type":"string"}},"required":["channel","eventType"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.templates.save":{"post":{"operationId":"execute_notifications_templates_save","summary":"Save notification template","description":"Create or update a validated tenant notification-template override.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"channel":{"anyOf":[{"const":"in_app"},{"const":"email"}]},"eventType":{"type":"string"},"subject":{"type":"string"}},"required":["body","channel","eventType","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/notifications.templates.upsert":{"post":{"operationId":"execute_notifications_templates_upsert","summary":"Upsert notification template","description":"Create or update a validated tenant notification-template override.","tags":["notifications"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"channel":{"anyOf":[{"const":"in_app"},{"const":"email"}]},"eventType":{"type":"string"},"subject":{"type":"string"}},"required":["body","channel","eventType","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/onboarding.draft.update":{"post":{"operationId":"execute_onboarding_draft_update","summary":"Save an onboarding step","description":"Save onboarding form values and optional guided messages and return the updated onboarding state.","tags":["onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"currentStep":{"anyOf":[{"const":"welcome"},{"const":"business"},{"const":"property"},{"const":"space"},{"const":"complete"}]},"draft":{"type":"object","properties":{"business":{"type":"object","properties":{"contactEmail":{"type":"string"},"contactName":{"type":"string"},"currency":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"timezone":{"type":"string"}},"required":["contactEmail","contactName","currency","name","phone","timezone"],"additionalProperties":false},"property":{"type":"object","properties":{"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"city":{"type":"string"},"contactEmail":{"type":"string"},"country":{"type":"string"},"name":{"type":"string"},"postalCode":{"type":"string"},"region":{"type":"string"}},"required":["addressLine1","addressLine2","city","contactEmail","country","name","postalCode","region"],"additionalProperties":false},"space":{"type":"object","properties":{"availabilityPreset":{"anyOf":[{"const":"weekdays_9_5"},{"const":"weekdays_8_6"},{"const":"all_week_8_8"}]},"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"hourlyPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"type":{"type":"string"}},"required":["availabilityPreset","capacity","hourlyPriceCents","name","type"],"additionalProperties":false},"workspace":{"type":"object","properties":{"businessType":{"anyOf":[{"const":"coworking"},{"const":"office"},{"const":"studio"},{"const":"venue"},{"const":"community"},{"const":"multi_use"},{"const":"other"}]},"modules":{"type":"array","items":{"anyOf":[{"const":"spaces"},{"const":"bookings"},{"const":"members"},{"const":"memberships"},{"const":"billing"},{"const":"access"},{"const":"events"},{"const":"marketplace"},{"const":"communications"},{"const":"operations"},{"const":"insights"},{"const":"reports"},{"const":"website"}]}},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["businessType","modules","version"],"additionalProperties":false}},"required":["business","property","space"],"additionalProperties":false},"guidedMessage":{"type":"object","properties":{"assistantContent":{"type":"string"},"step":{"anyOf":[{"const":"welcome"},{"const":"business"},{"const":"property"},{"const":"space"},{"const":"complete"}]},"userContent":{"type":"string"}},"required":["assistantContent","step","userContent"],"additionalProperties":false},"mode":{"anyOf":[{"const":"classic"},{"const":"guided"}]},"step":{"anyOf":[{"const":"welcome"},{"const":"business"},{"const":"property"},{"const":"space"},{"const":"complete"}]}},"required":["draft","mode","step"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/onboarding.workspace.complete":{"post":{"operationId":"execute_onboarding_workspace_complete","summary":"Complete workspace onboarding","description":"Finalize the saved onboarding draft, create the first property, floor, and space, and return their IDs and completion state.","tags":["onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["bulk"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-create","tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/onboarding.workspace.finalize":{"post":{"operationId":"execute_onboarding_workspace_finalize","summary":"Finalize workspace onboarding","description":"Finalize saved or reviewed onboarding values and return completion state and the created property, floor, and space IDs.","tags":["onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewedDraft":{"type":"object","properties":{"business":{"type":"object","properties":{"contactEmail":{"type":"string"},"contactName":{"type":"string"},"currency":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"},"timezone":{"type":"string"}},"required":["contactEmail","contactName","currency","name","phone","timezone"],"additionalProperties":false},"property":{"type":"object","properties":{"addressLine1":{"type":"string"},"addressLine2":{"type":"string"},"city":{"type":"string"},"contactEmail":{"type":"string"},"country":{"type":"string"},"name":{"type":"string"},"postalCode":{"type":"string"},"region":{"type":"string"}},"required":["addressLine1","addressLine2","city","contactEmail","country","name","postalCode","region"],"additionalProperties":false},"space":{"type":"object","properties":{"availabilityPreset":{"anyOf":[{"const":"weekdays_9_5"},{"const":"weekdays_8_6"},{"const":"all_week_8_8"}]},"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"hourlyPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"type":{"type":"string"}},"required":["availabilityPreset","capacity","hourlyPriceCents","name","type"],"additionalProperties":false},"workspace":{"type":"object","properties":{"businessType":{"anyOf":[{"const":"coworking"},{"const":"office"},{"const":"studio"},{"const":"venue"},{"const":"community"},{"const":"multi_use"},{"const":"other"}]},"modules":{"type":"array","items":{"anyOf":[{"const":"spaces"},{"const":"bookings"},{"const":"members"},{"const":"memberships"},{"const":"billing"},{"const":"access"},{"const":"events"},{"const":"marketplace"},{"const":"communications"},{"const":"operations"},{"const":"insights"},{"const":"reports"},{"const":"website"}]}},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["businessType","modules","version"],"additionalProperties":false}},"required":["business","property","space"],"additionalProperties":false}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["bulk"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-create","tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/onboarding.workspace.get":{"post":{"operationId":"execute_onboarding_workspace_get","summary":"Get onboarding state","description":"Return shared onboarding progress, draft values, guided messages, workspace selection, and finalized inventory IDs.","tags":["onboarding"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningPolicy.get":{"post":{"operationId":"execute_operations_cleaningPolicy_get","summary":"Get cleaning policy","description":"Return task generation settings and the verification-photo requirement.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningPolicy.update":{"post":{"operationId":"execute_operations_cleaningPolicy_update","summary":"Update cleaning policy","description":"Save generation settings and the verification-photo requirement; return the policy record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"autoGenerationDelayMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"autoGenerationEnabled":{"type":"boolean"},"verificationPhotoRequired":{"type":"boolean"}},"required":["autoGenerationDelayMinutes","autoGenerationEnabled","verificationPhotoRequired"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSchedules.archive":{"post":{"operationId":"execute_operations_cleaningSchedules_archive","summary":"Archive a cleaning schedule","description":"Disable and soft-delete a recurring cleaning schedule; return deleted: true.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"scheduleId":{"type":"string","x-convex-table":"recurringCleaningSchedules"}},"required":["scheduleId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSchedules.generate":{"post":{"operationId":"execute_operations_cleaningSchedules_generate","summary":"Generate recurring cleaning tasks","description":"Create the next task for each enabled recurring schedule and return createdCount.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-create"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSchedules.list":{"post":{"operationId":"execute_operations_cleaningSchedules_list","summary":"List recurring cleaning schedules","description":"Return active recurring schedules with space names and next due times.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSchedules.restore":{"post":{"operationId":"execute_operations_cleaningSchedules_restore","summary":"Restore a cleaning schedule","description":"Clear a schedule's deletion marker, set enabled and return its schedule ID.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"scheduleId":{"type":"string","x-convex-table":"recurringCleaningSchedules"}},"required":["enabled","scheduleId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSchedules.set":{"post":{"operationId":"execute_operations_cleaningSchedules_set","summary":"Save a recurring cleaning schedule","description":"Create or update a recurring schedule and return its record; enabled schedules also generate their next task.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"minuteOfDay":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"notes":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"weekday":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["enabled","minuteOfDay","spaceId","weekday"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-create"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSchedules.update":{"post":{"operationId":"execute_operations_cleaningSchedules_update","summary":"Save a recurring cleaning schedule","description":"Create or update a recurring schedule and return its record; enabled schedules also generate their next task.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"minuteOfDay":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"notes":{"type":"string"},"scheduleId":{"type":"string","x-convex-table":"recurringCleaningSchedules"},"spaceId":{"type":"string","x-convex-table":"spaces"},"weekday":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["enabled","minuteOfDay","spaceId","weekday","scheduleId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningSpaces.list":{"post":{"operationId":"execute_operations_cleaningSpaces_list","summary":"List cleaning spaces","description":"Return active tenant space IDs and names for cleaning schedules.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.bulkReassign":{"post":{"operationId":"execute_operations_cleaningTasks_bulkReassign","summary":"Reassign cleaning tasks in bulk","description":"Reassign cleaning tasks to one staff member and return per-task outcomes and totals.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignedTo":{"type":"string","x-convex-table":"users"},"tasks":{"type":"array","items":{"type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}}},"required":["assignedTo","tasks"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.claim":{"post":{"operationId":"execute_operations_cleaningTasks_claim","summary":"Claim a cleaning task","description":"Assign a pending cleaning task to the caller and return the updated task and history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.list":{"post":{"operationId":"execute_operations_cleaningTasks_list","summary":"List cleaning tasks","description":"Return active tenant cleaning tasks ordered by due date, including history, file IDs and management eligibility.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.reassign":{"post":{"operationId":"execute_operations_cleaningTasks_reassign","summary":"Reassign a cleaning task","description":"Change a nonterminal task's assignee and return the updated task and history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignedTo":{"type":"string","x-convex-table":"users"},"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["assignedTo","expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.recall":{"post":{"operationId":"execute_operations_cleaningTasks_recall","summary":"Recall a cleaning task","description":"Return a claimed or in-progress task to pending and clear its assignment; return the updated task.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.reopen":{"post":{"operationId":"execute_operations_cleaningTasks_reopen","summary":"Reopen a cleaning task","description":"Return a verified or skipped task to pending and clear assignment and verification fields.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.rollback":{"post":{"operationId":"execute_operations_cleaningTasks_rollback","summary":"Roll back a cleaning task","description":"Move a nonpending task back one workflow state and return the updated task and history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.skip":{"post":{"operationId":"execute_operations_cleaningTasks_skip","summary":"Skip a cleaning task","description":"Mark a nonterminal cleaning task skipped and return the updated task and history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-complete"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.start":{"post":{"operationId":"execute_operations_cleaningTasks_start","summary":"Start a cleaning task","description":"Move a claimed cleaning task into progress and return the updated task and history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.cleaningTasks.verify":{"post":{"operationId":"execute_operations_cleaningTasks_verify","summary":"Verify a cleaning task","description":"Mark an in-progress task verified, attach evidence and return its updated record and history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedUpdatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"photoStorageIds":{"type":"array","items":{"type":"string","x-convex-table":"_storage"}},"taskId":{"type":"string","x-convex-table":"cleaningTasks"}},"required":["expectedUpdatedAt","photoStorageIds","taskId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-complete"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.equipment.archive":{"post":{"operationId":"execute_operations_equipment_archive","summary":"Archive equipment","description":"Soft-delete an equipment record and return deleted: true.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"equipmentId":{"type":"string","x-convex-table":"equipment"}},"required":["equipmentId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.equipment.create":{"post":{"operationId":"execute_operations_equipment_create","summary":"Create equipment","description":"Create a tenant equipment record and return the saved record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"type":"string"},"name":{"type":"string"},"notes":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"serial":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"status":{"anyOf":[{"const":"ok"},{"const":"needs-service"},{"const":"retired"}]}},"required":["category","name","propertyId","status"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-create"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.equipment.list":{"post":{"operationId":"execute_operations_equipment_list","summary":"List equipment","description":"Return active equipment with property and space names, filtered by property, status or text.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"search":{"type":"string"},"status":{"anyOf":[{"const":"ok"},{"const":"needs-service"},{"const":"retired"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.equipment.options":{"post":{"operationId":"execute_operations_equipment_options","summary":"Get equipment options","description":"Return active tenant properties and spaces, including each space's property ID.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.equipment.restore":{"post":{"operationId":"execute_operations_equipment_restore","summary":"Restore equipment","description":"Clear an equipment record's deletion marker and return its equipment ID.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"equipmentId":{"type":"string","x-convex-table":"equipment"}},"required":["equipmentId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.equipment.update":{"post":{"operationId":"execute_operations_equipment_update","summary":"Update equipment","description":"Replace equipment fields and return the saved record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"type":"string"},"equipmentId":{"type":"string","x-convex-table":"equipment"},"name":{"type":"string"},"notes":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"serial":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"status":{"anyOf":[{"const":"ok"},{"const":"needs-service"},{"const":"retired"}]}},"required":["category","equipmentId","name","propertyId","status"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.incidents.acknowledge":{"post":{"operationId":"execute_operations_incidents_acknowledge","summary":"Acknowledge an incident","description":"Move an open incident report to acknowledged and return null.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reportId":{"type":"string","x-convex-table":"incidentReports"}},"required":["reportId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.incidents.create":{"post":{"operationId":"execute_operations_incidents_create","summary":"Report an incident","description":"Record an incident against a booking and return its report ID.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"category":{"anyOf":[{"const":"damage"},{"const":"safety"},{"const":"access"},{"const":"cleanliness"},{"const":"other"}]},"narrative":{"type":"string"},"requestKey":{"type":"string"}},"required":["bookingId","category","narrative","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"incidentReports"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-create"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.incidents.forBooking":{"post":{"operationId":"execute_operations_incidents_forBooking","summary":"Get booking incidents","description":"Return up to 50 incident reports for an active tenant booking, newest first.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.incidents.list":{"post":{"operationId":"execute_operations_incidents_list","summary":"List incident reports","description":"Return incident rows in the requested state with pagination metadata.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string"},"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"state":{"anyOf":[{"const":"open"},{"const":"acknowledged"},{"const":"resolved"}]}},"required":["state"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.incidents.resolve":{"post":{"operationId":"execute_operations_incidents_resolve","summary":"Resolve an incident","description":"Move an open or acknowledged incident to resolved and return null.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reportId":{"type":"string","x-convex-table":"incidentReports"}},"required":["reportId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-complete"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceComments.create":{"post":{"operationId":"execute_operations_maintenanceComments_create","summary":"Add a maintenance comment","description":"Append a ticket comment and update the ticket timestamp; return created: true.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["body","ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceHistory.list":{"post":{"operationId":"execute_operations_maintenanceHistory_list","summary":"List maintenance history","description":"Return tenant maintenance tickets with their latest event times, filtered by space or text.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"search":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceSpaces.list":{"post":{"operationId":"execute_operations_maintenanceSpaces_list","summary":"List maintenance spaces","description":"Return active tenant space IDs and names.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceStaff.list":{"post":{"operationId":"execute_operations_maintenanceStaff_list","summary":"List maintenance staff","description":"Return eligible maintenance assignees with user IDs, names and roles.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.assign":{"post":{"operationId":"execute_operations_maintenanceTickets_assign","summary":"Assign a maintenance ticket","description":"Assign or unassign a ticket and return its updated record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignedTo":{"type":"string","x-convex-table":"users"},"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.bulkAssign":{"post":{"operationId":"execute_operations_maintenanceTickets_bulkAssign","summary":"Assign maintenance tickets in bulk","description":"Assign tickets to one staff member and return per-ticket outcomes and totals.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignedTo":{"type":"string","x-convex-table":"users"},"ticketIds":{"type":"array","items":{"type":"string","x-convex-table":"maintenanceTickets"}}},"required":["assignedTo","ticketIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.bulkResolve":{"post":{"operationId":"execute_operations_maintenanceTickets_bulkResolve","summary":"Resolve maintenance tickets in bulk","description":"Resolve tickets and remove their maintenance space blocks; return per-ticket outcomes and totals.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketIds":{"type":"array","items":{"type":"string","x-convex-table":"maintenanceTickets"}}},"required":["ticketIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"results":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"const":"CONNECT_ONBOARDING_INCOMPLETE"},{"const":"SPACE_BLOCKED_FOR_MAINTENANCE"},{"const":"SUBSCRIPTION_LIMIT_REACHED"},{"const":"TASK_ALREADY_CLAIMED"},{"const":"TENANT_MISMATCH"},{"const":"UNAUTHORIZED"},{"const":"FORBIDDEN"},{"const":"MFA_REQUIRED"},{"const":"LEGAL_ACCEPTANCE_REQUIRED"},{"const":"NOT_FOUND"},{"const":"VALIDATION_FAILED"},{"const":"SLUG_TAKEN"},{"const":"PROMOTION_INVALID"},{"const":"REVIEW_NOT_VERIFIED"},{"const":"BOOKING_SLOT_CONFLICT"},{"const":"BOOKING_BLACKOUT"},{"const":"BOOKING_ILLEGAL_TRANSITION"},{"const":"IDEMPOTENCY_CONFLICT"},{"const":"APPROVAL_MISMATCH"},{"const":"APPROVAL_EXPIRED"},{"const":"WAITLIST_FULL"},{"const":"AI_PROVIDER_DISABLED"},{"const":"AI_QUOTA_EXCEEDED"},{"const":"RATE_LIMITED"},{"const":"INTERNAL"}]},"detail":{"anyOf":[{"const":"refund_manual"},{"const":"assignee_unavailable"},{"const":"checkin_not_open"},{"const":"offer_not_published"},{"const":"ticket_not_in_progress"}]},"id":{"type":"string"},"ok":{"type":"boolean"},"unchanged":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":false}},"succeeded":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unchanged":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["failed","results","succeeded","unchanged"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-complete"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.complete":{"post":{"operationId":"execute_operations_maintenanceTickets_complete","summary":"Resolve a maintenance ticket","description":"Resolve an in-progress ticket, remove its space blocks and return the updated ticket.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-complete"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.create":{"post":{"operationId":"execute_operations_maintenanceTickets_create","summary":"File a maintenance ticket","description":"Create an open maintenance ticket for a space and return the ticket record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"description":{"type":"string"},"equipmentId":{"type":"string","x-convex-table":"equipment"},"priority":{"anyOf":[{"const":"low"},{"const":"medium"},{"const":"high"},{"const":"urgent"}]},"spaceId":{"type":"string","x-convex-table":"spaces"},"title":{"type":"string"}},"required":["priority","spaceId","title"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-create"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.get":{"post":{"operationId":"execute_operations_maintenanceTickets_get","summary":"Get a maintenance ticket","description":"Return an active ticket with staff, equipment, space and event history.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.list":{"post":{"operationId":"execute_operations_maintenanceTickets_list","summary":"List maintenance tickets","description":"Return active tenant tickets with related names, ordered by priority and latest update.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.schedule":{"post":{"operationId":"execute_operations_maintenanceTickets_schedule","summary":"Schedule a maintenance ticket","description":"Set a maintenance window and optional space block; return the updated ticket.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"blocksSpace":{"type":"boolean"},"scheduledEndAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"scheduledStartAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["blocksSpace","scheduledEndAt","scheduledStartAt","ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.start":{"post":{"operationId":"execute_operations_maintenanceTickets_start","summary":"Start a maintenance ticket","description":"Move a scheduled ticket into progress and return the updated ticket.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.triage":{"post":{"operationId":"execute_operations_maintenanceTickets_triage","summary":"Triage a maintenance ticket","description":"Set priority, optionally assign staff, and return the updated triaged ticket.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"priority":{"anyOf":[{"const":"low"},{"const":"medium"},{"const":"high"},{"const":"urgent"}]},"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["priority","ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.triageAssign":{"post":{"operationId":"execute_operations_maintenanceTickets_triageAssign","summary":"Triage a maintenance ticket","description":"Set priority, optionally assign staff, and return the updated triaged ticket.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"assignedTo":{"type":"string","x-convex-table":"users"},"priority":{"anyOf":[{"const":"low"},{"const":"medium"},{"const":"high"},{"const":"urgent"}]},"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["priority","ticketId","assignedTo"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update","operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.maintenanceTickets.unschedule":{"post":{"operationId":"execute_operations_maintenanceTickets_unschedule","summary":"Unschedule a maintenance ticket","description":"Remove the maintenance window and space blocks; return the ticket in triaged state.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ticketId":{"type":"string","x-convex-table":"maintenanceTickets"}},"required":["ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.overview.get":{"post":{"operationId":"execute_operations_overview_get","summary":"Get operations overview","description":"Return cleaning and maintenance counts, overdue work, weekly completions and current staff shifts.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.staff.options":{"post":{"operationId":"execute_operations_staff_options","summary":"List scheduling staff","description":"Return eligible staff IDs, names and roles for scheduling or cleaning assignments.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.staffShifts.copy":{"post":{"operationId":"execute_operations_staffShifts_copy","summary":"Copy last week's shifts","description":"Copy previous-week shifts into the requested week and return createdCount.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"weekStartAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["weekStartAt"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.staffShifts.create":{"post":{"operationId":"execute_operations_staffShifts_create","summary":"Create a staff shift","description":"Create a staff shift and return its stored record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"role":{"anyOf":[{"const":"owner"},{"const":"ops_manager"},{"const":"front_desk"},{"const":"cleaning_staff"},{"const":"maintenance_staff"},{"const":"finance"},{"const":"community"},{"const":"events"},{"const":"it"},{"const":"custom"}]},"startAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"userId":{"type":"string","x-convex-table":"users"}},"required":["endAt","role","startAt","userId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.staffShifts.delete":{"post":{"operationId":"execute_operations_staffShifts_delete","summary":"Delete a staff shift","description":"Soft-delete a tenant staff shift and return deleted: true.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"shiftId":{"type":"string","x-convex-table":"staffShifts"}},"required":["shiftId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.staffShifts.list":{"post":{"operationId":"execute_operations_staffShifts_list","summary":"List staff shifts","description":"Return active shifts overlapping the optional window, with staff names and conflict counts.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.staffShifts.update":{"post":{"operationId":"execute_operations_staffShifts_update","summary":"Update a staff shift","description":"Replace staff assignment, role label and shift window; return the updated record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"role":{"anyOf":[{"const":"owner"},{"const":"ops_manager"},{"const":"front_desk"},{"const":"cleaning_staff"},{"const":"maintenance_staff"},{"const":"finance"},{"const":"community"},{"const":"events"},{"const":"it"},{"const":"custom"}]},"shiftId":{"type":"string","x-convex-table":"staffShifts"},"startAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"userId":{"type":"string","x-convex-table":"users"}},"required":["endAt","role","shiftId","startAt","userId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.time.clockIn":{"post":{"operationId":"execute_operations_time_clockIn","summary":"Clock in","description":"Create an active time entry for the caller and return its record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notes":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"}},"required":["propertyId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.time.clockOut":{"post":{"operationId":"execute_operations_time_clockOut","summary":"Clock out","description":"Complete the caller's active time entry and return its updated record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notes":{"type":"string"},"timeEntryId":{"type":"string","x-convex-table":"timeEntries"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-update"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.time.getMine":{"post":{"operationId":"execute_operations_time_getMine","summary":"Get personal time entries","description":"Return the caller's weekly entries, active entry, property options and management eligibility.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"weekStartAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-read"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.time.getTeam":{"post":{"operationId":"execute_operations_time_getTeam","summary":"Get team timesheets","description":"Return filtered weekly time entries, team user options and approved/completed/total hour summaries.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"status":{"anyOf":[{"const":"active"},{"const":"completed"},{"const":"approved"}]},"userId":{"type":"string","x-convex-table":"users"},"weekStartAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.timeEntries.approve":{"post":{"operationId":"execute_operations_timeEntries_approve","summary":"Approve a time entry","description":"Approve a completed time entry and return its updated record.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"timeEntryId":{"type":"string","x-convex-table":"timeEntries"}},"required":["timeEntryId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/operations.timeEntries.bulkApprove":{"post":{"operationId":"execute_operations_timeEntries_bulkApprove","summary":"Approve time entries in bulk","description":"Approve completed entries and return approvedCount.","tags":["operations"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"timeEntryIds":{"type":"array","items":{"type":"string","x-convex-table":"timeEntries"}}},"required":["timeEntryIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["operation-assign"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingPayments.cancel":{"post":{"operationId":"execute_payments_bookingPayments_cancel","summary":"Cancel a booking payment attempt","description":"Prove provider cancellation before releasing the reservation and allowing another payment.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingPayments.get":{"post":{"operationId":"execute_payments_bookingPayments_get","summary":"Read booking payment status","description":"Read persisted payment and fulfillment status after webhook settlement.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingPayments.pay":{"post":{"operationId":"execute_payments_bookingPayments_pay","summary":"Pay a booking","description":"Confirm a one-time shared payment token against the frozen quote, or return a human handoff.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingPayments.quote":{"post":{"operationId":"execute_payments_bookingPayments_quote","summary":"Preview a booking payment","description":"Return provisional pricing and available payment modes without reserving or charging.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"applyCredits":{"type":"boolean"},"bookingId":{"type":"string","x-convex-table":"bookings"},"promotionCode":{"type":"string"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingPayments.recover":{"post":{"operationId":"execute_payments_bookingPayments_recover","summary":"Reconcile a booking payment attempt","description":"Find the original account-bound intent without creating a replacement charge.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingPayments.reserve":{"post":{"operationId":"execute_payments_bookingPayments_reserve","summary":"Reserve a booking payment","description":"Freeze the authoritative amount, reservation, buyer and seller account before delegating payment.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"applyCredits":{"type":"boolean"},"bookingId":{"type":"string","x-convex-table":"bookings"},"expectedPricingHash":{"type":"string"},"promotionCode":{"type":"string"}},"required":["bookingId","expectedPricingHash"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingRefunds.checkStatus":{"post":{"operationId":"execute_payments_bookingRefunds_checkStatus","summary":"Check a saved booking refund","description":"Recover the exact previously authorized request and return its status without creating another refund identity.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","x-convex-table":"bookingRefundRequests"}},"required":["requestId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-refund"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingRefunds.get":{"post":{"operationId":"execute_payments_bookingRefunds_get","summary":"Get the saved booking refund request","description":"Read the invoice's outstanding or latest refund identity, original amount, status and review reason.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoiceId":{"type":"string","x-convex-table":"invoices"}},"required":["invoiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-refund"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingRefunds.refund":{"post":{"operationId":"execute_payments_bookingRefunds_refund","summary":"Refund a booking payment","description":"Consume an owned refund approval, request the Stripe refund and reconcile invoice, credits and payout compensation.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalId":{"type":"string","x-convex-table":"refundApprovals"}},"required":["approvalId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-refund"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingRefunds.requestApproval":{"post":{"operationId":"execute_payments_bookingRefunds_requestApproval","summary":"Request booking refund approval","description":"Create or reuse a five-minute refund approval for an owned invoice and return its ID, amount, expiry and status.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"previousRequestId":{"type":"string"},"requestId":{"type":"string"}},"required":["invoiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-refund"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.bookingRefunds.retireUnusedApproval":{"post":{"operationId":"execute_payments_bookingRefunds_retireUnusedApproval","summary":"Retire an unused booking refund approval","description":"Retire an amount-bound approval only when a transaction proves no financial reservation or provider attempt exists; otherwise return the existing request status.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoiceId":{"type":"string","x-convex-table":"invoices"},"requestId":{"type":"string"}},"required":["invoiceId","requestId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"status":{"const":"retired"}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalExpiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalId":{"type":"string","x-convex-table":"refundApprovals"},"approvalOwner":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"userId":{"type":"string","x-convex-table":"users"}},"required":["name","userId"],"additionalProperties":false},"canResumeApproval":{"type":"boolean"},"clientRequestId":{"type":"string"},"effectsDeferred":{"type":"boolean"},"identity":{"type":"string"},"providerStatus":{"type":"string"},"reason":{"type":"string"},"requestId":{"type":"string","x-convex-table":"bookingRefundRequests"},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["amountCents","effectsDeferred","providerStatus","status","statusOnly"],"additionalProperties":false}]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-refund"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.commerce.recordReceipt":{"post":{"operationId":"execute_payments_commerce_recordReceipt","summary":"Record commerce payment","description":"Record a manual settlement, activate the matching purchase, and return the receipt id.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"note":{"type":"string"},"reference":{"type":"string"},"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["amountCents","currency","note","reference","target"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"commerceReceipts"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.commerce.recordRefund":{"post":{"operationId":"execute_payments_commerce_recordRefund","summary":"Record commerce refund","description":"Record a manual receipt refund, revoke the related purchase, and return null.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"receiptId":{"type":"string","x-convex-table":"commerceReceipts"},"refundReference":{"type":"string"}},"required":["receiptId","refundReference"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.commercePayments.list":{"post":{"operationId":"execute_payments_commercePayments_list","summary":"List commerce card payments","description":"Return a descending, paginated list of the workspace's card-commerce checkout records.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"commerceCheckouts"},"agentPaymentQuoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"commissionBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"lastEventId":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"observationEventAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paidAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentIntentId":{"type":"string"},"recoveryReason":{"type":"string"},"refundAttempts":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundAuthorizedAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundFirstSentAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundId":{"type":"string"},"refundStatus":{"anyOf":[{"const":"uncertain"},{"const":"pending"},{"const":"failed"},{"const":"succeeded"}]},"refundTimestampSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"}]},"refundedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"returnUrl":{"type":"string"},"revision":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"state":{"anyOf":[{"const":"creating"},{"const":"open"},{"const":"paid"},{"const":"expired"},{"const":"refund_required"},{"const":"partially_refunded"},{"const":"refunded"}]},"stripeAccountId":{"type":"string"},"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","applicationFeeCents","commissionBps","createdAt","currency","expiresAt","memberId","name","refundAttempts","refundedCents","returnUrl","revision","salesChannel","state","stripeAccountId","target","tenantId","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["sessionUrl","sessionId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.commercePayments.refund":{"post":{"operationId":"execute_payments_commercePayments_refund","summary":"Refund a commerce purchase","description":"Mark a paid commerce checkout for refund, revoke its purchase entitlement and attempt a Stripe refund; return accepted.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"checkoutId":{"type":"string","x-convex-table":"commerceCheckouts"}},"required":["checkoutId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.commerceReceipts.list":{"post":{"operationId":"execute_payments_commerceReceipts_list","summary":"List commerce receipts","description":"Return a descending, paginated list of the workspace's manual commerce receipts.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"commerceReceipts"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"note":{"type":"string"},"recordedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"recordedBy":{"type":"string","x-convex-table":"users"},"reference":{"type":"string"},"refundReference":{"type":"string"},"refundedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedBy":{"type":"string","x-convex-table":"users"},"source":{"const":"manual"},"status":{"anyOf":[{"const":"settled"},{"const":"refunded"}]},"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["_creationTime","_id","amountCents","currency","note","recordedAt","recordedBy","reference","source","status","target","tenantId"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.creditNotes.create":{"post":{"operationId":"execute_payments_creditNotes_create","summary":"Issue a credit note","description":"Issue an invoice-plan credit note, reconcile its balance and return the credit-note ID.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"reason":{"type":"string"},"reference":{"type":"string"}},"required":["amountCents","currency","planId","reason","reference"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"creditNotes"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.creditNotes.verifyRefund":{"post":{"operationId":"execute_payments_creditNotes_verifyRefund","summary":"Verify an external refund","description":"Record a confirmed manual refund against a credit note and return the refund receipt ID.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditNoteId":{"type":"string","x-convex-table":"creditNotes"},"currency":{"type":"string"},"evidence":{"type":"string"},"externalReference":{"type":"string"}},"required":["amountCents","creditNoteId","currency","evidence","externalReference"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"invoicePaymentReceipts"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.financialBackfill.get":{"post":{"operationId":"execute_payments_financialBackfill_get","summary":"Get financial preparation status","description":"Return readiness and processed-row counts for each financial ledger source.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ready":{"type":"boolean"},"sources":{"type":"array","items":{"type":"object","properties":{"processedRows":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"source":{"anyOf":[{"const":"invoices"},{"const":"membershipInvoices"},{"const":"commerceReceipts"},{"const":"commerceCheckouts"},{"const":"invoicePaymentReceipts"},{"const":"creditNotes"},{"const":"invoicePaymentCollections"}]},"status":{"anyOf":[{"const":"pending"},{"const":"running"},{"const":"ready"}]}},"required":["processedRows","source","status"],"additionalProperties":false}}},"required":["ready","sources"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.financialBackfill.run":{"post":{"operationId":"execute_payments_financialBackfill_run","summary":"Prepare financial history","description":"Queue resumable financial-ledger backfills for sources that are not ready; return null.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentCollections.list":{"post":{"operationId":"execute_payments_installmentCollections_list","summary":"List installment card collections","description":"Return recent card-collection attempts for a payment plan, using the selected staff or customer projection.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"anyOf":[{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"invoicePaymentCollections"},"agentPaymentQuoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserRecoveryAllowed":{"type":"boolean"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"email":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"installmentKey":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"lastEventId":{"type":"string"},"lastFailureAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"observationEventAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paidAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentIntentId":{"type":"string"},"paymentTimestampSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"}]},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"refund":{"type":"object","properties":{"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"request":{"type":"object","properties":{"accountScope":{"type":"string"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"identity":{"type":"string"},"providerStatus":{"type":"string"},"refundId":{"type":"string"}},"required":["accountScope","amountCents","currency","identity","providerStatus"],"additionalProperties":false},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["effectsDeferred","providerStatus","status","statusOnly"],"additionalProperties":false},"refundFirstSentAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundId":{"type":"string"},"refundSettledBinding":{"type":"string"},"refundStatus":{"anyOf":[{"const":"pending"},{"const":"failed"},{"const":"succeeded"}]},"refundTimestampSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"}]},"refundedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"returnUrl":{"type":"string"},"status":{"anyOf":[{"const":"creating"},{"const":"open"},{"const":"paid"},{"const":"failed"},{"const":"expired"},{"const":"refund_required"},{"const":"refunded"}]},"stripeAccountId":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","applicationFeeCents","browserRecoveryAllowed","createdAt","currency","expiresAt","installmentKey","invoiceId","name","planId","refundedCents","returnUrl","status","stripeAccountId","tenantId","updatedAt"],"additionalProperties":false},{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"invoicePaymentCollections"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserRecoveryAllowed":{"type":"boolean"},"currency":{"type":"string"},"installmentKey":{"type":"string"},"refund":{"type":"object","properties":{"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"request":{"type":"object","properties":{"accountScope":{"type":"string"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"identity":{"type":"string"},"providerStatus":{"type":"string"},"refundId":{"type":"string"}},"required":["accountScope","amountCents","currency","identity","providerStatus"],"additionalProperties":false},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["effectsDeferred","providerStatus","status","statusOnly"],"additionalProperties":false},"refundStatus":{"anyOf":[{"const":"pending"},{"const":"failed"},{"const":"succeeded"}]},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"status":{"type":"string"}},"required":["_id","amountCents","browserRecoveryAllowed","currency","installmentKey","refundedCents","status"],"additionalProperties":false}]}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["checkoutUrl","sessionId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentCollections.recover":{"post":{"operationId":"execute_payments_installmentCollections_recover","summary":"Recover an installment payment","description":"Reconcile a recorded card collection against Stripe and return configuration state and reason.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"collectionId":{"type":"string","x-convex-table":"invoicePaymentCollections"}},"required":["collectionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"const":"review_blocked"},{"const":"pending"},{"const":"succeeded"},{"const":"failed"},{"const":"manually_settled"}]},"statusOnly":{"type":"boolean"}},"required":["configured","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentPayments.cancel":{"post":{"operationId":"execute_payments_installmentPayments_cancel","summary":"Cancel a installment payment","description":"Confirm provider cancellation before releasing the hold or collection.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentPayments.get":{"post":{"operationId":"execute_payments_installmentPayments_get","summary":"Get a installment payment","description":"Read settlement and refund state recorded by the existing domain handler.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentPayments.pay":{"post":{"operationId":"execute_payments_installmentPayments_pay","summary":"Pay a installment payment","description":"Pay the frozen obligation with a shared payment token or return a signed human checkout handoff.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentPayments.quote":{"post":{"operationId":"execute_payments_installmentPayments_quote","summary":"Quote a installment payment","description":"Preview the saved amount, connected account profile and available payment modes.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","applicationFeeCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentPayments.recover":{"post":{"operationId":"execute_payments_installmentPayments_recover","summary":"Recover a installment payment","description":"Reconcile the original payment without creating a replacement charge.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.installmentPayments.reserve":{"post":{"operationId":"execute_payments_installmentPayments_reserve","summary":"Reserve a installment payment","description":"Freeze the owned commercial obligation before delegating a one-time payment.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedPricingHash":{"type":"string"},"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["expectedPricingHash","installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.invoiceReceipts.verifyPayment":{"post":{"operationId":"execute_payments_invoiceReceipts_verifyPayment","summary":"Verify an external invoice payment","description":"Record a verified manual installment payment, reconcile the invoice and return its receipt ID.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"evidence":{"type":"string"},"externalReference":{"type":"string"},"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["amountCents","currency","evidence","externalReference","installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"invoicePaymentReceipts"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.invoiceRefunds.list":{"post":{"operationId":"execute_payments_invoiceRefunds_list","summary":"List invoice refund requests","description":"Return pending, succeeded and failed card refund requests for an owned payment plan.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"requestKey":{"type":"string"}},"required":["planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"invoiceRefundRequests"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"collectionId":{"type":"string","x-convex-table":"invoicePaymentCollections"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditNoteId":{"type":"string","x-convex-table":"creditNotes"},"currency":{"type":"string"},"effectsDeferred":{"type":"boolean"},"failureReason":{"type":"string"},"firstSentAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"manualReviewReason":{"type":"string"},"manualSettlement":{"type":"object","properties":{"binding":{"type":"string"},"decidedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"evidence":{"type":"string"},"operatorUserId":{"type":"string","x-convex-table":"users"}},"required":["binding","decidedAt","evidence","operatorUserId"],"additionalProperties":false},"manuallySettled":{"type":"boolean"},"observationEventAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentIntentId":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"providerStatus":{"type":"string"},"receiptId":{"type":"string","x-convex-table":"invoicePaymentReceipts"},"refundId":{"type":"string"},"requestKey":{"type":"string"},"requestedByUserId":{"type":"string","x-convex-table":"users"},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"},"stripeAccountId":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","collectionId","createdAt","creditNoteId","currency","effectsDeferred","paymentIntentId","planId","providerStatus","requestKey","requestedByUserId","status","statusOnly","stripeAccountId","tenantId","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.invoiceRefunds.recover":{"post":{"operationId":"execute_payments_invoiceRefunds_recover","summary":"Recover an invoice refund","description":"Retry or reconcile an existing invoice card refund and return configuration state and reason.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","x-convex-table":"invoiceRefundRequests"}},"required":["requestId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"configured":{"type":"boolean"},"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestId":{"type":"string","x-convex-table":"invoiceRefundRequests"},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["configured","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.invoiceRefunds.refund":{"post":{"operationId":"execute_payments_invoiceRefunds_refund","summary":"Refund an invoice card payment","description":"Reserve and execute a card refund against an invoice credit note; return configuration state and reason.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"collectionId":{"type":"string","x-convex-table":"invoicePaymentCollections"},"creditNoteId":{"type":"string","x-convex-table":"creditNotes"},"requestKey":{"type":"string"}},"required":["amountCents","collectionId","creditNoteId","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"configured":{"type":"boolean"},"effectsDeferred":{"type":"boolean"},"providerStatus":{"type":"string"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestId":{"type":"string","x-convex-table":"invoiceRefundRequests"},"status":{"anyOf":[{"const":"pending"},{"const":"uncertain"},{"const":"failed"},{"const":"succeeded"},{"const":"completed"},{"const":"refunded"},{"const":"partially_refunded"},{"const":"manually_settled"},{"const":"review_blocked"}]},"statusOnly":{"type":"boolean"}},"required":["configured","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipBilling.update":{"post":{"operationId":"execute_payments_membershipBilling_update","summary":"Change membership billing","description":"Pause, resume or cancel recurring membership billing; return accepted and reason.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"transition":{"anyOf":[{"const":"pause"},{"const":"resume"},{"const":"cancel_now"},{"const":"cancel_at_end"},{"const":"keep_active"}]}},"required":["expectedVersion","subscriptionId","transition"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["accepted","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipInvoices.create":{"post":{"operationId":"execute_payments_membershipInvoices_create","summary":"Create a membership invoice","description":"Create or reuse the open manual renewal invoice for a workspace membership and return its ID.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"membershipInvoices"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipInvoices.list":{"post":{"operationId":"execute_payments_membershipInvoices_list","summary":"List membership invoices","description":"Return the latest invoices for an owned membership subscription.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"membershipInvoices"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"dueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"evidenceNote":{"type":"string"},"invoiceNumber":{"type":"string"},"kind":{"anyOf":[{"const":"period"},{"const":"trial"}]},"memberId":{"type":"string","x-convex-table":"members"},"paidAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentReference":{"type":"string"},"periodEnd":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"periodStart":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"open"},{"const":"paid"},{"const":"void"}]},"stripeInvoiceId":{"type":"string"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"verifiedByUserId":{"type":"string","x-convex-table":"users"}},"required":["_creationTime","_id","amountCents","createdAt","currency","dueAt","invoiceNumber","memberId","periodEnd","periodStart","status","subscriptionId","tenantId","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipInvoices.verifyPayment":{"post":{"operationId":"execute_payments_membershipInvoices_verifyPayment","summary":"Verify membership invoice payment","description":"Record a confirmed external invoice payment, activate the paid membership period and return the subscription ID.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"evidenceNote":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"membershipInvoices"},"paymentReference":{"type":"string"}},"required":["amountCents","currency","evidenceNote","invoiceId","paymentReference"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"memberSubscriptions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipInvoices.void":{"post":{"operationId":"execute_payments_membershipInvoices_void","summary":"Void a membership invoice","description":"Mark an owned open membership invoice void and return null.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invoiceId":{"type":"string","x-convex-table":"membershipInvoices"}},"required":["invoiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipPayments.checkout":{"post":{"operationId":"execute_payments_membershipPayments_checkout","summary":"Open recurring checkout","description":"Return the existing hosted checkout URL for the person to confirm recurring billing.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["configured","reason","url"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipPayments.get":{"post":{"operationId":"execute_payments_membershipPayments_get","summary":"Read recurring payment status","description":"Read persisted recurring billing status without collecting another payment.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paymentMode":{"const":"handoff"},"recurring":{"const":true},"status":{"type":"string"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["paymentMode","recurring","status","subscriptionId","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipPayments.openPortal":{"post":{"operationId":"execute_payments_membershipPayments_openPortal","summary":"Open recurring billing portal","description":"Return the existing hosted billing portal for the owned membership.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["expectedVersion","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["configured","reason","url"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.membershipPlans.schedule":{"post":{"operationId":"execute_payments_membershipPlans_schedule","summary":"Schedule a membership plan change","description":"Schedule a published membership plan for the next Stripe renewal and return accepted and reason.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["expectedVersion","planId","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["accepted","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.paymentPlans.create":{"post":{"operationId":"execute_payments_paymentPlans_create","summary":"Create an invoice payment plan","description":"Create or reuse an invoice installment plan and return its ID.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installments":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"dueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"}},"required":["amountCents","dueAt","key"],"additionalProperties":false}},"invoiceId":{"type":"string","x-convex-table":"invoices"}},"required":["installments","invoiceId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"invoicePaymentPlans"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.paymentPlans.get":{"post":{"operationId":"execute_payments_paymentPlans_get","summary":"Get a payment-plan statement","description":"Return an owned payment plan, reconciled totals, installment balances and receipt/credit-note history.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"adjustmentEligibility":{"type":"object","properties":{"card":{"type":"boolean"},"credit":{"type":"boolean"},"holds":{"type":"array","items":{"type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"},"bookingRefundRequestId":{"type":"string","x-convex-table":"bookingRefundRequests"},"browserRecoveryAllowed":{"type":"boolean"},"cardRefundRequestId":{"type":"string","x-convex-table":"invoiceRefundRequests"},"collectionId":{"type":"string","x-convex-table":"invoicePaymentCollections"},"kind":{"anyOf":[{"const":"checkout"},{"const":"booking_refund"},{"const":"card_refund"},{"const":"expiry_review"},{"const":"history_limit"}]}},"required":["kind"],"additionalProperties":false}},"payment":{"type":"boolean"},"refund":{"type":"boolean"}},"required":["card","credit","holds","payment","refund"],"additionalProperties":false},"creditNotes":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"creditNotes"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"issuedByUserId":{"type":"string","x-convex-table":"users"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"reason":{"type":"string"},"recordedRefundCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reference":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["_creationTime","_id","amountCents","createdAt","currency","invoiceId","issuedByUserId","planId","reason","recordedRefundCents","reference","tenantId"],"additionalProperties":false}},"historyTruncated":{"type":"boolean"},"installments":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"browserCheckoutAllowed":{"type":"boolean"},"dueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"outstandingCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","dueAt","key","outstandingCents","receivedCents"],"additionalProperties":false}},"invoiceNumber":{"type":"string"},"plan":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"invoicePaymentPlans"},"bookingId":{"type":"string","x-convex-table":"bookings"},"commissionBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"installments":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"dueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","dueAt","key","receivedCents"],"additionalProperties":false}},"invoiceId":{"type":"string","x-convex-table":"invoices"},"memberId":{"type":"string","x-convex-table":"members"},"openingReceivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalTotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"salesQuoteId":{"type":"string","x-convex-table":"salesQuotes"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","commissionBps","createdAt","creditedCents","currency","installments","invoiceId","openingReceivedCents","originalTotalCents","receivedCents","refundedCents","salesChannel","tenantId","updatedAt","version"],"additionalProperties":false},"receipts":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"invoicePaymentReceipts"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"collectionId":{"type":"string","x-convex-table":"invoicePaymentCollections"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditNoteId":{"type":"string","x-convex-table":"creditNotes"},"currency":{"type":"string"},"evidence":{"type":"string"},"externalReference":{"type":"string"},"installmentKey":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"kind":{"anyOf":[{"const":"payment"},{"const":"refund"}]},"method":{"anyOf":[{"const":"manual"},{"const":"stripe"}]},"occurredAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"tenantId":{"type":"string","x-convex-table":"tenants"},"timestampSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"},{"const":"manual_verification"}]},"verifiedByUserId":{"type":"string","x-convex-table":"users"}},"required":["_creationTime","_id","amountCents","createdAt","currency","evidence","externalReference","invoiceId","kind","method","planId","tenantId"],"additionalProperties":false}},"totals":{"type":"object","properties":{"adjustedTotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"customerCreditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"netReceivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"outstandingCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"settled":{"type":"boolean"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["adjustedTotalCents","creditedCents","customerCreditCents","netReceivedCents","outstandingCents","receivedCents","refundedCents","settled","totalCents"],"additionalProperties":false}},"required":["adjustmentEligibility","creditNotes","historyTruncated","installments","invoiceNumber","plan","receipts","totals"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.paymentPlans.list":{"post":{"operationId":"execute_payments_paymentPlans_list","summary":"List invoice payment plans","description":"Return a descending, paginated list of workspace invoice payment plans.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"invoicePaymentPlans"},"bookingId":{"type":"string","x-convex-table":"bookings"},"commissionBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"installments":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"dueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","dueAt","key","receivedCents"],"additionalProperties":false}},"invoiceId":{"type":"string","x-convex-table":"invoices"},"memberId":{"type":"string","x-convex-table":"members"},"openingReceivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalTotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"receivedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"salesQuoteId":{"type":"string","x-convex-table":"salesQuotes"},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","commissionBps","createdAt","creditedCents","currency","installments","invoiceId","openingReceivedCents","originalTotalCents","receivedCents","refundedCents","salesChannel","tenantId","updatedAt","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.purchasePayments.cancel":{"post":{"operationId":"execute_payments_purchasePayments_cancel","summary":"Cancel a purchase payment","description":"Confirm provider cancellation before releasing the hold or collection.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.purchasePayments.get":{"post":{"operationId":"execute_payments_purchasePayments_get","summary":"Get a purchase payment","description":"Read settlement and refund state recorded by the existing domain handler.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.purchasePayments.pay":{"post":{"operationId":"execute_payments_purchasePayments_pay","summary":"Pay a purchase payment","description":"Pay the frozen obligation with a shared payment token or return a signed human checkout handoff.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.purchasePayments.quote":{"post":{"operationId":"execute_payments_purchasePayments_quote","summary":"Quote a purchase payment","description":"Preview the saved amount, connected account profile and available payment modes.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["target"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","applicationFeeCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.purchasePayments.recover":{"post":{"operationId":"execute_payments_purchasePayments_recover","summary":"Recover a purchase payment","description":"Reconcile the original payment without creating a replacement charge.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.purchasePayments.reserve":{"post":{"operationId":"execute_payments_purchasePayments_reserve","summary":"Reserve a purchase payment","description":"Freeze the owned commercial obligation before delegating a one-time payment.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedPricingHash":{"type":"string"},"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["expectedPricingHash","target"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.refundSources.collections":{"post":{"operationId":"execute_payments_refundSources_collections","summary":"List retained card refund sources","description":"Page owned refund sources independently of statement display history.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["paginationOpts","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"invoicePaymentCollections"},"currency":{"type":"string"},"installmentKey":{"type":"string"},"remainingCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["_id","currency","installmentKey","remainingCents"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/payments.refundSources.notes":{"post":{"operationId":"execute_payments_refundSources_notes","summary":"List refundable credit note sources","description":"Page owned refund sources independently of statement display history.","tags":["payments"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["paginationOpts","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"creditNotes"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"issuedByUserId":{"type":"string","x-convex-table":"users"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"},"reason":{"type":"string"},"recordedRefundCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reference":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["_creationTime","_id","amountCents","createdAt","currency","invoiceId","issuedByUserId","planId","reason","recordedRefundCents","reference","tenantId"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.aiEvals.list":{"post":{"operationId":"execute_platform_aiEvals_list","summary":"List AI evaluation results","description":"Return evaluation runs with scores, pass status, model identifiers, and baseline versions, optionally filtered by purpose.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purpose":{"anyOf":[{"const":"ops-copilot"},{"const":"booking-assistant"},{"const":"marketplace-discovery"},{"const":"insights-nl"},{"const":"review-draft"},{"const":"pricing-suggest"},{"const":"maintenance-predict"},{"const":"operator-console"},{"const":"site-builder"},{"const":"onboarding-guide"},{"const":"integration-agent"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:ai"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.aiGovernance.list":{"post":{"operationId":"execute_platform_aiGovernance_list","summary":"List AI governance settings","description":"Return provider summaries, supported purposes, and AI routes for an optional tenant.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:ai"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.aiGuardrails.list":{"post":{"operationId":"execute_platform_aiGuardrails_list","summary":"List AI guardrail summaries","description":"Return guardrail event counts and latest timestamps grouped by tenant and category.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:ai"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.aiUsage.get":{"post":{"operationId":"execute_platform_aiUsage_get","summary":"Get AI usage summaries","description":"Return call counts, costs, token totals, and usage timestamps grouped by tenant, purpose, provider, and model.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purpose":{"anyOf":[{"const":"ops-copilot"},{"const":"booking-assistant"},{"const":"marketplace-discovery"},{"const":"insights-nl"},{"const":"review-draft"},{"const":"pricing-suggest"},{"const":"maintenance-predict"},{"const":"operator-console"},{"const":"site-builder"},{"const":"onboarding-guide"},{"const":"integration-agent"}]},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:ai"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.alerts.list":{"post":{"operationId":"execute_platform_alerts_list","summary":"List platform alerts","description":"Return platform alerts for large bookings, new tenants, payout failures, and integration breakers, with the current administrator's read state.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"unreadOnly":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:notifications"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.alerts.setRead":{"post":{"operationId":"execute_platform_alerts_setRead","summary":"Set platform alert read state","description":"Mark an alert read or unread for the current administrator and return the refreshed alert list.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"alertId":{"type":"string"},"read":{"type":"boolean"}},"required":["alertId","read"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:notifications"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.analytics.getOverview":{"post":{"operationId":"execute_platform_analytics_getOverview","summary":"Get platform analytics","description":"Return six monthly analytics buckets and totals for booking volume, tenant activity, commissions, and subscription revenue.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"currency":{"type":"string"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:analytics:revenue"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.analytics.getRevenue":{"post":{"operationId":"execute_platform_analytics_getRevenue","summary":"Get platform revenue analytics","description":"Return current revenue metrics and six monthly buckets for subscription MRR, commissions, and revenue per active tenant.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"currency":{"type":"string"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:analytics:revenue"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.analytics.getTenants":{"post":{"operationId":"execute_platform_analytics_getTenants","summary":"Get tenant analytics","description":"Return a 30-day tenant leaderboard, occupancy and revenue summaries, and tenants at risk from booking inactivity.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"currency":{"type":"string"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:analytics:revenue"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.auditLogs.list":{"post":{"operationId":"execute_platform_auditLogs_list","summary":"List platform audit logs","description":"Return audit logs with actor details and metadata, filtered by search text, action, and date range.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"type":"string"},"fromMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"query":{"type":"string"},"toMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","ownerInvitationId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:audit"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.commerceModeration.decide":{"post":{"operationId":"execute_platform_commerceModeration_decide","summary":"Review a commerce offer","description":"Approve or reject a published commerce offer version and return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"decision":{"anyOf":[{"const":"approved"},{"const":"rejected"}]},"entryId":{"type":"string","x-convex-table":"commerceCatalogEntries"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"}},"required":["decision","entryId","expectedVersion","reason"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.commerceModeration.list":{"post":{"operationId":"execute_platform_commerceModeration_list","summary":"List pending commerce offers","description":"Return a paginated moderation queue of published commerce offers with descriptions, prices, and fulfillment policy.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"description":{"type":"string"},"entryId":{"type":"string","x-convex-table":"commerceCatalogEntries"},"locationName":{"type":"string"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"remotePolicy":{"anyOf":[{"type":"string"},{"type":"null"}]},"tenantName":{"type":"string"},"unit":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","currency","description","entryId","locationName","name","offerId","remotePolicy","tenantName","unit","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.create":{"post":{"operationId":"execute_platform_disputes_create","summary":"Open a staff dispute","description":"Create an open staff-flag dispute for a booking or commerce order and return its case ID.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"type":"string"},"subject":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"bookings"},"kind":{"const":"booking"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"commerceOrders"},"kind":{"const":"order"}},"required":["id","kind"],"additionalProperties":false}]},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["note","subject","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"disputeCases"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.freezeEvidence":{"post":{"operationId":"execute_platform_disputes_freezeEvidence","summary":"Freeze dispute evidence","description":"Create an immutable factual evidence bundle for a dispute and return its ID, or return the existing bundle ID.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"caseId":{"type":"string","x-convex-table":"disputeCases"}},"required":["caseId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"disputeEvidenceBundles"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.get":{"post":{"operationId":"execute_platform_disputes_get","summary":"Get a dispute case","description":"Return dispute details, any frozen evidence bundle, and relevant payout holds.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"caseId":{"type":"string","x-convex-table":"disputeCases"}},"required":["caseId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.list":{"post":{"operationId":"execute_platform_disputes_list","summary":"List dispute cases","description":"Return a paginated dispute queue filtered by state, with tenant, subject, deadline, and outcome details.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string"},"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"state":{"anyOf":[{"const":"open"},{"const":"evidence_due"},{"const":"submitted"},{"const":"won"},{"const":"lost"},{"const":"withdrawn"},{"const":"closed"}]}},"required":["state"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.placeHold":{"post":{"operationId":"execute_platform_disputes_placeHold","summary":"Place a dispute payout hold","description":"Place or reuse a booking payout hold and return its ID and whether another dispute already covers the booking.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"caseId":{"type":"string","x-convex-table":"disputeCases"},"note":{"type":"string"}},"required":["caseId","note"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"coveredByOtherCase":{"type":"boolean"},"holdId":{"type":"string","x-convex-table":"payoutHolds"}},"required":["coveredByOtherCase","holdId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.releaseHold":{"post":{"operationId":"execute_platform_disputes_releaseHold","summary":"Release a dispute payout hold","description":"Mark a payout hold released and return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"holdId":{"type":"string","x-convex-table":"payoutHolds"},"note":{"type":"string"}},"required":["holdId","note"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.disputes.update":{"post":{"operationId":"execute_platform_disputes_update","summary":"Update a dispute state","description":"Record a permitted dispute state transition, optional response deadline, and applicable outcome, then return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"caseId":{"type":"string","x-convex-table":"disputeCases"},"note":{"type":"string"},"outcome":{"anyOf":[{"const":"resolved"},{"const":"no_action"}]},"respondByAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"to":{"anyOf":[{"const":"open"},{"const":"evidence_due"},{"const":"submitted"},{"const":"won"},{"const":"lost"},{"const":"withdrawn"},{"const":"closed"}]}},"required":["caseId","note","to"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:disputes"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.emailTemplates.list":{"post":{"operationId":"execute_platform_emailTemplates_list","summary":"List platform email templates","description":"Return catalog email templates with saved overrides, supported variables, and update metadata.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.emailTemplates.sendTest":{"post":{"operationId":"execute_platform_emailTemplates_sendTest","summary":"Send a template test email","description":"Send a rendered template test to the calling administrator and return delivery status.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channel":{"const":"email"},"eventType":{"type":"string"}},"required":["channel","eventType"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.emailTemplates.update":{"post":{"operationId":"execute_platform_emailTemplates_update","summary":"Update a platform email template","description":"Save a platform default email template override and return the saved template.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"channel":{"const":"email"},"eventType":{"type":"string"},"subject":{"type":"string"}},"required":["body","channel","eventType","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.failedPayouts.list":{"post":{"operationId":"execute_platform_failedPayouts_list","summary":"List failed payout transfers","description":"Return failed payout outbox records with tenant, amount, attempts, failure reason and provider-check status.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.featureFlags.list":{"post":{"operationId":"execute_platform_featureFlags_list","summary":"List feature flags","description":"Return feature flag settings, scopes, descriptions, and update metadata.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.featureFlags.setEnabled":{"post":{"operationId":"execute_platform_featureFlags_setEnabled","summary":"Set feature flag state","description":"Update an existing feature flag's enabled metadata and return its updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationText":{"type":"string"},"flagId":{"type":"string","x-convex-table":"featureFlags"},"isEnabled":{"type":"boolean"}},"required":["confirmationText","flagId","isEnabled"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.hostVerification.get":{"post":{"operationId":"execute_platform_hostVerification_get","summary":"Get host verification records","description":"Return a tenant's verification states, staff notes, evidence references, and decision metadata for all verification kinds.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:trust:verification"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.hostVerification.list":{"post":{"operationId":"execute_platform_hostVerification_list","summary":"List host verification checks","description":"Return a paginated queue of stored host verification checks filtered by state.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cursor":{"type":"string"},"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"state":{"anyOf":[{"const":"not_started"},{"const":"submitted"},{"const":"under_review"},{"const":"accepted"},{"const":"declined"},{"const":"expired"}]}},"required":["state"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:trust:verification"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.hostVerification.update":{"post":{"operationId":"execute_platform_hostVerification_update","summary":"Update a host verification state","description":"Record a permitted verification transition with staff evidence and decision notes, returning the verification record ID.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"attestationId":{"type":"string","x-convex-table":"hostAuthorityAttestations"},"decisionNote":{"type":"string"},"evidenceRef":{"type":"string"},"kind":{"anyOf":[{"const":"business_registration"},{"const":"address"},{"const":"resource_ownership"},{"const":"payout_account"}]},"state":{"anyOf":[{"const":"not_started"},{"const":"submitted"},{"const":"under_review"},{"const":"accepted"},{"const":"declined"},{"const":"expired"}]},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["decisionNote","evidenceRef","kind","state","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"hostVerifications"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:trust:verification"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.integrations.listStatuses":{"post":{"operationId":"execute_platform_integrations_listStatuses","summary":"List platform integration statuses","description":"Return integration configuration status and required or missing environment-variable names.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legal.getOverview":{"post":{"operationId":"execute_platform_legal_getOverview","summary":"Get legal document governance","description":"Return legal revision metadata and legal requirement sets for platform administration.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRequirementSets.activate":{"post":{"operationId":"execute_platform_legalRequirementSets_activate","summary":"Activate a legal requirement set","description":"Activate a draft requirement set, assign its next version, retire prior active sets for the same scope, and return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewReference":{"type":"string"},"setId":{"type":"string","x-convex-table":"legalRequirementSets"}},"required":["reviewReference","setId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRequirementSets.create":{"post":{"operationId":"execute_platform_legalRequirementSets_create","summary":"Create a legal requirement set","description":"Create a draft legal requirement set for a product surface and jurisdiction and return its ID.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"acceptanceMode":{"anyOf":[{"const":"once_per_version"},{"const":"each_transaction"}]},"attestationRevisionId":{"type":"string","x-convex-table":"legalDocumentRevisions"},"documentRevisionIds":{"type":"array","items":{"type":"string","x-convex-table":"legalDocumentRevisions"}},"jurisdiction":{"type":"string"},"reviewReference":{"type":"string"},"surface":{"anyOf":[{"const":"marketplace_purchase"},{"const":"host_publication"}]}},"required":["acceptanceMode","documentRevisionIds","jurisdiction","reviewReference","surface"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"legalRequirementSets"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRequirementSets.retire":{"post":{"operationId":"execute_platform_legalRequirementSets_retire","summary":"Retire a legal requirement set","description":"Retire a requirement set while preserving its historical record, then return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewReference":{"type":"string"},"setId":{"type":"string","x-convex-table":"legalRequirementSets"}},"required":["reviewReference","setId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRevisions.approve":{"post":{"operationId":"execute_platform_legalRevisions_approve","summary":"Approve a legal revision","description":"Approve and freeze a bilingual draft legal revision after verifying its stored text fingerprints, then return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewReference":{"type":"string"},"revisionId":{"type":"string","x-convex-table":"legalDocumentRevisions"}},"required":["reviewReference","revisionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRevisions.getText":{"post":{"operationId":"execute_platform_legalRevisions_getText","summary":"Get legal revision text","description":"Return the full English and French text of a legal revision for review or draft editing.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"revisionId":{"type":"string","x-convex-table":"legalDocumentRevisions"}},"required":["revisionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRevisions.retire":{"post":{"operationId":"execute_platform_legalRevisions_retire","summary":"Retire a legal revision","description":"Retire an approved legal revision while preserving its text and history, then return null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reviewReference":{"type":"string"},"revisionId":{"type":"string","x-convex-table":"legalDocumentRevisions"}},"required":["reviewReference","revisionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.legalRevisions.saveDraft":{"post":{"operationId":"execute_platform_legalRevisions_saveDraft","summary":"Save a legal draft","description":"Create a new bilingual legal revision or update an existing draft and return its revision ID.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"documentKey":{"anyOf":[{"const":"terms_of_service"},{"const":"privacy_policy"},{"const":"marketplace_terms"},{"const":"host_terms"},{"const":"business_subscription_terms"},{"const":"cancellation_refund_policy"},{"const":"acceptable_use"},{"const":"data_processing_agreement"},{"const":"host_authority_attestation"}]},"en":{"type":"object","properties":{"body":{"type":"string"},"title":{"type":"string"}},"required":["body","title"],"additionalProperties":false},"fr":{"type":"object","properties":{"body":{"type":"string"},"title":{"type":"string"}},"required":["body","title"],"additionalProperties":false},"reviewReference":{"type":"string"},"revisionId":{"type":"string","x-convex-table":"legalDocumentRevisions"}},"required":["documentKey","en","fr","reviewReference"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"legalDocumentRevisions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.approve":{"post":{"operationId":"execute_platform_listings_approve","summary":"Approve a marketplace listing","description":"Approve and publish a pending listing and return its updated moderation summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"listingId":{"type":"string","x-convex-table":"listings"}},"required":["listingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.flag":{"post":{"operationId":"execute_platform_listings_flag","summary":"Flag a marketplace listing","description":"Create a moderation flag and return its audit-log ID together with the listing summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"anyOf":[{"const":"prohibited_content"},{"const":"misleading"},{"const":"safety"},{"const":"pricing"},{"const":"other"}]},"listingId":{"type":"string","x-convex-table":"listings"},"note":{"type":"string"}},"required":["category","listingId","note"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.list":{"post":{"operationId":"execute_platform_listings_list","summary":"List marketplace moderation listings","description":"Return listing moderation summaries filtered by search, status, featured state, and tenant, together with listing statistics.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"featured":{"type":"boolean"},"query":{"type":"string"},"status":{"anyOf":[{"const":"all"},{"const":"pending"},{"const":"approved"},{"const":"rejected"},{"const":"changes_requested"}]},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.listPending":{"post":{"operationId":"execute_platform_listings_listPending","summary":"List pending and featured candidates","description":"Return pending listings, approved featured candidates, and the marketplace moderation requirement setting.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.reject":{"post":{"operationId":"execute_platform_listings_reject","summary":"Reject a marketplace listing","description":"Reject a pending listing, remove publication and featured state, and return its updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"listingId":{"type":"string","x-convex-table":"listings"},"reason":{"type":"string"}},"required":["listingId","reason"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.requestChanges":{"post":{"operationId":"execute_platform_listings_requestChanges","summary":"Request marketplace listing changes","description":"Request changes to a pending listing, unpublish it, clear featured state, and return its updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"listingId":{"type":"string","x-convex-table":"listings"},"reason":{"type":"string"}},"required":["listingId","reason"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.listings.setFeatured":{"post":{"operationId":"execute_platform_listings_setFeatured","summary":"Set marketplace featured placement","description":"Enable or remove a listing's featured placement and return its updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"isFeatured":{"type":"boolean"},"listingId":{"type":"string","x-convex-table":"listings"},"ordinal":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["isFeatured","listingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:featured"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.moderationQueue.list":{"post":{"operationId":"execute_platform_moderationQueue_list","summary":"List marketplace moderation reports","description":"Return listing flags and qualifying open marketplace support reports ordered by update time.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"category":{"anyOf":[{"const":"prohibited_content"},{"const":"misleading"},{"const":"safety"},{"const":"pricing"},{"const":"other"}]},"status":{"anyOf":[{"const":"open"},{"const":"resolved"},{"const":"dismissed"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.moderationQueue.resolveFlag":{"post":{"operationId":"execute_platform_moderationQueue_resolveFlag","summary":"Resolve a listing flag","description":"Mark a listing moderation flag resolved or dismissed and return its updated queue item.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"flagId":{"type":"string","x-convex-table":"auditLogs"},"notes":{"type":"string"},"status":{"anyOf":[{"const":"resolved"},{"const":"dismissed"}]}},"required":["flagId","notes","status"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:marketplace:moderation"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.payouts.export":{"post":{"operationId":"execute_platform_payouts_export","summary":"Export payout CSV","description":"Return payout history as CSV text with a filename and content type.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fromMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"paid"},{"const":"failed"},{"const":"cancelled"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"tenantQuery":{"type":"string"},"toMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.payouts.list":{"post":{"operationId":"execute_platform_payouts_list","summary":"List payouts","description":"Return filtered payout summaries with tenant names, amounts, statuses, and Stripe identifiers.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fromMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"paid"},{"const":"failed"},{"const":"cancelled"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"tenantQuery":{"type":"string"},"toMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.payouts.release":{"post":{"operationId":"execute_platform_payouts_release","summary":"Release a payout","description":"Attempt a Stripe Connect transfer for an existing payout and return its release outcome.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"payoutId":{"type":"string","x-convex-table":"payouts"}},"required":["payoutId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.payouts.releaseBatch":{"post":{"operationId":"execute_platform_payouts_releaseBatch","summary":"Release selected payouts","description":"Attempt Stripe Connect transfers for selected payouts and return per-payout outcomes.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"payoutIds":{"type":"array","items":{"type":"string","x-convex-table":"payouts"}}},"required":["payoutIds"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["bulk"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.pilotMetrics.enroll":{"post":{"operationId":"execute_platform_pilotMetrics_enroll","summary":"Enroll a pilot tenant","description":"Create or update a tenant's pilot cohort enrollment and return its cohort ID.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"enrolledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"synthetic":{"type":"boolean"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["enrolledAt","synthetic","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"pilotCohorts"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:write"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.pilotMetrics.getCheckoutCohort":{"post":{"operationId":"execute_platform_pilotMetrics_getCheckoutCohort","summary":"Get checkout cohort metrics","description":"Return pilot checkout starts, payment outcomes, unmatched outcomes, and whether the counts are exact.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endAt","startAt"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"declined":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"errors":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"exact":{"type":"boolean"},"paid":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"started":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unmatched":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["declined","errors","exact","paid","started","unmatched"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:analytics:revenue"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.plans.archive":{"post":{"operationId":"execute_platform_plans_archive","summary":"Archive a subscription plan","description":"Mark a plan archived, inactive, and nondefault, then return its updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"subscriptionPlans"}},"required":["planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:plans"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.plans.create":{"post":{"operationId":"execute_platform_plans_create","summary":"Create a subscription plan","description":"Create a subscription plan with prices, limits, features, and optional Stripe price mappings, then return its summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"annualPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"description":{"type":"string"},"features":{"type":"object","properties":{"accessControlIntegration":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"apiAccess":{"type":"boolean"},"calendarSync":{"type":"boolean"},"customCss":{"type":"boolean"},"customDomain":{"type":"boolean"},"customPages":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"whiteLabel":{"type":"boolean"}},"required":["accessControlIntegration","advancedAnalytics","apiAccess","calendarSync","customCss","customDomain","prioritySupport","whiteLabel"],"additionalProperties":false},"isActive":{"type":"boolean"},"isDefault":{"type":"boolean"},"marketplaceCommissionBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxBookingsPerMonth":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxLocations":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxSpaces":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxUsers":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"monthlyPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"stripePriceIdAnnual":{"type":"string"},"stripePriceIdMonthly":{"type":"string"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["annualPriceCents","currency","description","features","isActive","isDefault","maxBookingsPerMonth","maxLocations","maxSpaces","maxUsers","monthlyPriceCents","name","slug","sortOrder","trialDays"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:plans"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.plans.list":{"post":{"operationId":"execute_platform_plans_list","summary":"List subscription plans","description":"Return subscription plan summaries ordered by archive status, default status, activity, sort order, and name.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeArchived":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:plans"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.plans.setFeature":{"post":{"operationId":"execute_platform_plans_setFeature","summary":"Set a plan feature","description":"Enable or disable one feature on a subscription plan and return the updated plan summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"featureKey":{"anyOf":[{"const":"accessControlIntegration"},{"const":"advancedAnalytics"},{"const":"apiAccess"},{"const":"calendarSync"},{"const":"customCss"},{"const":"customPages"},{"const":"customDomain"},{"const":"prioritySupport"},{"const":"whiteLabel"}]},"isEnabled":{"type":"boolean"},"planId":{"type":"string","x-convex-table":"subscriptionPlans"}},"required":["featureKey","isEnabled","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:plans"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.plans.update":{"post":{"operationId":"execute_platform_plans_update","summary":"Update a subscription plan","description":"Replace a plan's editable prices, limits, features, and mappings, then return its updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"annualPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"description":{"type":"string"},"features":{"type":"object","properties":{"accessControlIntegration":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"apiAccess":{"type":"boolean"},"calendarSync":{"type":"boolean"},"customCss":{"type":"boolean"},"customDomain":{"type":"boolean"},"customPages":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"whiteLabel":{"type":"boolean"}},"required":["accessControlIntegration","advancedAnalytics","apiAccess","calendarSync","customCss","customDomain","prioritySupport","whiteLabel"],"additionalProperties":false},"isActive":{"type":"boolean"},"isDefault":{"type":"boolean"},"marketplaceCommissionBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxBookingsPerMonth":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxLocations":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxSpaces":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxUsers":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"monthlyPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"planId":{"type":"string","x-convex-table":"subscriptionPlans"},"slug":{"type":"string"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"stripePriceIdAnnual":{"type":"string"},"stripePriceIdMonthly":{"type":"string"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["annualPriceCents","currency","description","features","isActive","isDefault","maxBookingsPerMonth","maxLocations","maxSpaces","maxUsers","monthlyPriceCents","name","planId","slug","sortOrder","trialDays"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:plans"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.providerPayoutReversals.list":{"post":{"operationId":"execute_platform_providerPayoutReversals_list","summary":"List external payout return observations","description":"Read the bounded inventory of account-bound transfer returns requiring audited reconciliation.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"providerPayoutReversalObservations"},"accountScope":{"type":"string"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountKnown":{"type":"boolean"},"amountReversedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attribution":{"anyOf":[{"const":"proven"},{"const":"unproven"}]},"binding":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"},"conflictingFacts":{"type":"boolean"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"destination":{"type":"string"},"payoutId":{"type":"string","x-convex-table":"payouts"},"providerEventAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reversals":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"id":{"type":"string"}},"required":["amountCents","id"],"additionalProperties":false}},"reviewState":{"anyOf":[{"const":"open"},{"const":"settled"}]},"revision":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"settlement":{"type":"object","properties":{"adminId":{"type":"string","x-convex-table":"platformAdmins"},"binding":{"type":"string"},"evidence":{"type":"string"},"operatorUserId":{"type":"string","x-convex-table":"users"},"settledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["binding","evidence","settledAt"],"additionalProperties":false},"sourceBinding":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"transferId":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","accountScope","amountCents","amountKnown","amountReversedCents","attribution","binding","conflictingFacts","createdAt","currency","destination","providerEventAt","reversals","reviewState","revision","sourceBinding","transferId","updatedAt"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.providerRefunds.list":{"post":{"operationId":"execute_platform_providerRefunds_list","summary":"List external provider refund reviews","description":"Read the bounded inventory of verified provider refund observations requiring manual attribution or reconciliation.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.settings.get":{"post":{"operationId":"execute_platform_settings_get","summary":"Get a platform setting","description":"Return a setting's JSON string and update metadata, or null if the key does not exist.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"string"}},"required":["key"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.settings.getGeneral":{"post":{"operationId":"execute_platform_settings_getGeneral","summary":"Get general platform settings","description":"Return platform branding, support email, booking alert threshold, and maintenance settings with defaults applied.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.settings.updateGeneral":{"post":{"operationId":"execute_platform_settings_updateGeneral","summary":"Update general platform settings","description":"Save platform branding, support contact, alert threshold, and maintenance configuration, then return the updated settings.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"brandingName":{"type":"string"},"confirmationText":{"type":"string"},"largeBookingAlertAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maintenanceBannerText":{"type":"string"},"maintenanceMode":{"type":"boolean"},"supportEmail":{"type":"string"}},"required":["brandingName","confirmationText","largeBookingAlertAmountCents","maintenanceBannerText","maintenanceMode","supportEmail"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.settings.updatePresentation":{"post":{"operationId":"execute_platform_settings_updatePresentation","summary":"Update general platform settings","description":"Update platform branding and alert settings while preserving maintenance state in the same transaction.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"brandingName":{"type":"string"},"largeBookingAlertAmountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"supportEmail":{"type":"string"}},"required":["brandingName","largeBookingAlertAmountCents","supportEmail"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"saved":{"type":"boolean"}},"required":["saved"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:settings"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.staff.list":{"post":{"operationId":"execute_platform_staff_list","summary":"List platform staff","description":"Return platform staff identity metadata, roles, permissions, and activity timestamps.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","invitationId","authSubject"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:staff"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.stripeReconciliation.sync":{"post":{"operationId":"execute_platform_stripeReconciliation_sync","summary":"Refresh Stripe reconciliation","description":"Compare current-month Stripe invoices, application fees, and transfers with internal revenue records and cache the reconciliation result.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:payouts"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.subscriptions.cancel":{"post":{"operationId":"execute_platform_subscriptions_cancel","summary":"Schedule tenant subscription cancellation","description":"Set a tenant's Stripe subscription to cancel at period end and return the provider outcome.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationText":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["confirmationText","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:write"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.subscriptions.setPlan":{"post":{"operationId":"execute_platform_subscriptions_setPlan","summary":"Change a tenant subscription plan","description":"Change a tenant's plan, synchronize an existing Stripe subscription, and return whether local and provider changes succeeded.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"subscriptionPlans"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["planId","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:write"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.supportTickets.assign":{"post":{"operationId":"execute_platform_supportTickets_assign","summary":"Assign a support ticket","description":"Assign or unassign a ticket's platform staff owner and return the updated ticket summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"staffId":{"type":"string","x-convex-table":"platformAdmins"},"ticketId":{"type":"string","x-convex-table":"supportTickets"}},"required":["ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:support:tickets"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.supportTickets.list":{"post":{"operationId":"execute_platform_supportTickets_list","summary":"List support tickets","description":"Return filtered ticket summaries, replies, requester details, and platform staff assignment options.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string"},"status":{"anyOf":[{"const":"open"},{"const":"pending"},{"const":"closed"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:support:tickets"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.supportTickets.sendReply":{"post":{"operationId":"execute_platform_supportTickets_sendReply","summary":"Reply to a support ticket","description":"Append an administrator reply, attempt email delivery when supported, and return the updated ticket with delivery status.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"ticketId":{"type":"string","x-convex-table":"supportTickets"}},"required":["body","ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:support:tickets"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.supportTickets.setStatus":{"post":{"operationId":"execute_platform_supportTickets_setStatus","summary":"Set support ticket status","description":"Change a ticket's platform support status and return the updated summary.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"anyOf":[{"const":"open"},{"const":"pending"},{"const":"closed"}]},"ticketId":{"type":"string","x-convex-table":"supportTickets"}},"required":["status","ticketId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:support:tickets"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.get":{"post":{"operationId":"execute_platform_tenants_get","summary":"Get tenant details","description":"Return tenant configuration, staff, domains, billing history, operational metrics, deletion state, and recent activity.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","ownerInvitationId","authSubject"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:read"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.listActivity":{"post":{"operationId":"execute_platform_tenants_listActivity","summary":"List tenant activity","description":"Return up to 200 filtered tenant audit records from the last 90 days.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"action":{"type":"string"},"entityType":{"type":"string"},"query":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","ownerInvitationId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:read"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.listPlans":{"post":{"operationId":"execute_platform_tenants_listPlans","summary":"List tenant plan options","description":"Return subscription plan options, pricing, features, and limits for tenant administration.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:read"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.search":{"post":{"operationId":"execute_platform_tenants_search","summary":"Search tenants","description":"Return up to 50 tenant summaries matching text and subscription-status filters.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"},"query":{"type":"string"},"status":{"anyOf":[{"const":"trialing"},{"const":"active"},{"const":"past_due"},{"const":"canceled"},{"const":"suspended"}]}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:read"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.setPlan":{"post":{"operationId":"execute_platform_tenants_setPlan","summary":"Set a tenant's local plan","description":"Change a tenant's local plan assignment and return updated tenant details.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planId":{"type":"string","x-convex-table":"subscriptionPlans"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["planId","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","ownerInvitationId","authSubject"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:write"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.suspend":{"post":{"operationId":"execute_platform_tenants_suspend","summary":"Suspend a tenant","description":"Suspend tenant operational access and return updated tenant details.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationText":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["confirmationText","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","ownerInvitationId","authSubject"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:write"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.tenants.unsuspend":{"post":{"operationId":"execute_platform_tenants_unsuspend","summary":"Unsuspend a tenant","description":"Clear tenant suspension, restore the saved subscription status, and return updated tenant details.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","ownerInvitationId","authSubject"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:tenants:write"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.users.get":{"post":{"operationId":"execute_platform_users_get","summary":"Get user details","description":"Return a consolidated user profile, workspace memberships, active-session timestamps, and recent related audit events.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"string"}},"required":["key"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:staff"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.users.list":{"post":{"operationId":"execute_platform_users_list","summary":"List users","description":"Return paginated consolidated users with roles, memberships, status, activity, and tenant filter options.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"direction":{"anyOf":[{"const":"asc"},{"const":"desc"}]},"page":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pageSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"platformRole":{"anyOf":[{"anyOf":[{"const":"super_admin"},{"const":"support"},{"const":"finance"},{"const":"marketing"}]},{"const":"none"}]},"search":{"type":"string"},"sort":{"anyOf":[{"const":"name"},{"const":"email"},{"const":"createdAt"},{"const":"lastActivityAt"}]},"status":{"anyOf":[{"const":"active"},{"const":"invited"},{"const":"suspended"},{"const":"removed"}]},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:staff"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.users.listPermissions":{"post":{"operationId":"execute_platform_users_listPermissions","summary":"List user permission definitions","description":"Return platform and tenant role permission maps plus active tenant custom-role definitions.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:staff"],"x-keyvra-conditional-permissions":[]}},"/operations/platform.users.updateProfile":{"post":{"operationId":"execute_platform_users_updateProfile","summary":"Update a user profile","description":"Update a user's name and phone across provider and local identity records, returning null.","tags":["platform"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"required":["key","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["platform"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["platform:staff"],"x-keyvra-conditional-permissions":[]}},"/operations/portal.billing.get":{"post":{"operationId":"execute_portal_billing_get","summary":"Get member billing","description":"Return the caller's booking and membership invoices with currency-separated totals and history-limit indicators.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.bookingRequests.create":{"post":{"operationId":"execute_portal_bookingRequests_create","summary":"Create a member booking request","description":"Create a space approval request for the caller's existing tenant membership.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"note":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","note","offerId","offerVersion","requestKey","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"bookingRequests"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.bookingRequests.get":{"post":{"operationId":"execute_portal_bookingRequests_get","summary":"Get booking approval status","description":"Return the caller-owned booking request's status, expiry, offer selection, time window, and amount.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","x-convex-table":"bookingRequests"}},"required":["requestId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"currency":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestId":{"type":"string","x-convex-table":"bookingRequests"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"}},"required":["amountCents","channelId","currency","endMs","expiresAt","offerId","offerVersion","requestId","startMs","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.bookingRequests.list":{"post":{"operationId":"execute_portal_bookingRequests_list","summary":"List member booking requests","description":"Return the caller's recent booking requests and checkout paths for live approved space requests.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"checkoutPath":{"anyOf":[{"type":"string"},{"type":"null"}]},"request":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"bookingRequests"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"apiReviewedTerms":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"},"bufferMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"decidedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"decidedBy":{"type":"string","x-convex-table":"users"},"decidedByApiKeyRef":{"type":"string"},"decisionReason":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"purchaseId":{"type":"string","x-convex-table":"dayPasses"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"requestedByApiKeyRef":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"approved"},{"const":"declined"},{"const":"expired"},{"const":"consumed"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","bufferMs","channelId","components","createdAt","currency","endMs","expiresAt","memberId","note","offerId","offerVersion","requestKey","resourceId","startMs","status","tenantId","title","updatedAt"],"additionalProperties":false}},"required":["checkoutPath","request"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.bookings.cancel":{"post":{"operationId":"execute_portal_bookings_cancel","summary":"Cancel a member booking","description":"Cancel the caller's tenant booking, apply its cancellation policy, and return the refund outcome.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"type":"string","x-convex-table":"bookings"}},"required":["bookingId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-cancel","booking-read","space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/portal.bookings.list":{"post":{"operationId":"execute_portal_bookings_list","summary":"List portal bookings","description":"Return the caller's upcoming and past tenant bookings with related invoice and add-on details.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.commerce.listPayments":{"post":{"operationId":"execute_portal_commerce_listPayments","summary":"List own commerce payments","description":"Return up to 100 recent checkout summaries for the caller's tenant membership and whether card checkout is configured.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cardAvailable":{"type":"boolean"},"checkouts":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"checkoutId":{"type":"string","x-convex-table":"commerceCheckouts"},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"state":{"type":"string"},"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["amountCents","checkoutId","currency","expiresAt","refundedCents","state","target"],"additionalProperties":false}}},"required":["cardAvailable","checkouts"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["sessionUrl","sessionId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.communications.getPreferences":{"post":{"operationId":"execute_portal_communications_getPreferences","summary":"Get communication preferences","description":"Return the member's newsletter and community consent, language, and preference version.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"community":{"type":"boolean"},"locale":{"anyOf":[{"const":"en"},{"const":"fr"}]},"newsletter":{"type":"boolean"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["community","locale","newsletter","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.communications.setPreferences":{"post":{"operationId":"execute_portal_communications_setPreferences","summary":"Set communication preferences","description":"Save the member's newsletter and community consent and language, then return null.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"community":{"type":"boolean"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"locale":{"anyOf":[{"const":"en"},{"const":"fr"}]},"newsletter":{"type":"boolean"}},"required":["community","expectedVersion","locale","newsletter"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.community.download":{"post":{"operationId":"execute_portal_community_download","summary":"Download a member community document","description":"Open the browser flow to download a member community document.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"postId":{"type":"string","x-convex-table":"communityPosts"}},"required":["postId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.community.listPosts":{"post":{"operationId":"execute_portal_community_listPosts","summary":"List member community posts","description":"Return published community posts matching the caller's membership audience, with attachment metadata and read receipts.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","x-convex-table":"communityPosts"},"bodyEn":{"type":"string"},"bodyFr":{"type":"string"},"document":{"anyOf":[{"type":"null"},{"type":"object","properties":{"contentType":{"type":"string"},"fileName":{"type":"string"},"size":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["contentType","fileName","size"],"additionalProperties":false}]},"publishedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"readAt":{"anyOf":[{"type":"null"},{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}]},"titleEn":{"type":"string"},"titleFr":{"type":"string"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_id","bodyEn","bodyFr","document","publishedAt","readAt","titleEn","titleFr","version"],"additionalProperties":false}},"timezone":{"type":"string"}},"required":["continueCursor","isDone","page","timezone"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.community.markPostRead":{"post":{"operationId":"execute_portal_community_markPostRead","summary":"Mark member post read","description":"Record that the caller read the current version of an eligible published community post.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"postId":{"type":"string","x-convex-table":"communityPosts"}},"required":["expectedVersion","postId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.dashboard.get":{"post":{"operationId":"execute_portal_dashboard_get","summary":"Get member portal dashboard","description":"Return the caller's bookings, memberships, benefits, balances, invoices, events, announcements, and truncation flags.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.eventRegistrations.cancel":{"post":{"operationId":"execute_portal_eventRegistrations_cancel","summary":"Cancel event registration","description":"Cancel the caller's event registration and refresh the event waitlist.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"registrationId":{"type":"string","x-convex-table":"eventRegistrations"}},"required":["registrationId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.eventRegistrations.create":{"post":{"operationId":"execute_portal_eventRegistrations_create","summary":"Register for an event","description":"Create an event registration for the caller, possibly waitlisted or awaiting payment.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","x-convex-table":"eventSessions"},"requestKey":{"type":"string"}},"required":["eventId","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"eventRegistrations"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.installmentPayments.cancel":{"post":{"operationId":"execute_portal_installmentPayments_cancel","summary":"Cancel a installment payment","description":"Confirm provider cancellation before releasing the hold or collection.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.installmentPayments.get":{"post":{"operationId":"execute_portal_installmentPayments_get","summary":"Get a installment payment","description":"Read settlement and refund state recorded by the existing domain handler.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.installmentPayments.pay":{"post":{"operationId":"execute_portal_installmentPayments_pay","summary":"Pay a installment payment","description":"Pay the frozen obligation with a shared payment token or return a signed human checkout handoff.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.installmentPayments.quote":{"post":{"operationId":"execute_portal_installmentPayments_quote","summary":"Quote a installment payment","description":"Preview the saved amount, connected account profile and available payment modes.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","applicationFeeCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.installmentPayments.recover":{"post":{"operationId":"execute_portal_installmentPayments_recover","summary":"Recover a installment payment","description":"Reconcile the original payment without creating a replacement charge.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.installmentPayments.reserve":{"post":{"operationId":"execute_portal_installmentPayments_reserve","summary":"Reserve a installment payment","description":"Freeze the owned commercial obligation before delegating a one-time payment.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedPricingHash":{"type":"string"},"installmentKey":{"type":"string"},"planId":{"type":"string","x-convex-table":"invoicePaymentPlans"}},"required":["expectedPricingHash","installmentKey","planId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.membershipBilling.update":{"post":{"operationId":"execute_portal_membershipBilling_update","summary":"Change membership billing","description":"Pause, resume or cancel recurring membership billing; return accepted and reason.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"transition":{"anyOf":[{"const":"pause"},{"const":"resume"},{"const":"cancel_now"},{"const":"cancel_at_end"},{"const":"keep_active"}]}},"required":["expectedVersion","subscriptionId","transition"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"accepted":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["accepted","reason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.membershipPayments.checkout":{"post":{"operationId":"execute_portal_membershipPayments_checkout","summary":"Open recurring checkout","description":"Return the existing hosted checkout URL for the person to confirm recurring billing.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["configured","reason","url"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.membershipPayments.get":{"post":{"operationId":"execute_portal_membershipPayments_get","summary":"Read recurring payment status","description":"Read persisted recurring billing status without collecting another payment.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paymentMode":{"const":"handoff"},"recurring":{"const":true},"status":{"type":"string"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["paymentMode","recurring","status","subscriptionId","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.membershipPayments.openPortal":{"post":{"operationId":"execute_portal_membershipPayments_openPortal","summary":"Open recurring billing portal","description":"Return the existing hosted billing portal for the owned membership.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["expectedVersion","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["configured","reason","url"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.memberships.cancel":{"post":{"operationId":"execute_portal_memberships_cancel","summary":"Cancel an owned membership","description":"Choose Stripe or manual cancellation from the persisted owned subscription, using its period end to choose immediate or scheduled cancellation.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"expectedVersion":{"type":"integer"}},"required":["subscriptionId","expectedVersion"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"saved":{"const":true}},"required":["saved"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["destructive"],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.memberships.cancelAtPeriodEnd":{"post":{"operationId":"execute_portal_memberships_cancelAtPeriodEnd","summary":"Cancel a membership","description":"Schedule cancellation at the paid period end, or cancel immediately when no paid period remains.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"}},"required":["expectedVersion","subscriptionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.memberships.get":{"post":{"operationId":"execute_portal_memberships_get","summary":"Get memberships and benefits","description":"Return the member's personal and seated company subscriptions and currently usable membership or pass benefits.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"memberBenefitGrants"},"benefitKey":{"type":"string"},"companyId":{"type":"string","x-convex-table":"companies"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"issuedQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"label":{"type":"string"},"ledgerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"passId":{"anyOf":[{"type":"string","x-convex-table":"dayPasses"},{"type":"null"}]},"periodStart":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"remainingQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"sourceKey":{"type":"string"},"subscriptionId":{"anyOf":[{"type":"string","x-convex-table":"memberSubscriptions"},{"type":"null"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["_creationTime","_id","benefitKey","createdAt","currency","expiresAt","issuedQuantity","label","memberId","periodStart","propertyIds","remainingQuantity","resourceIds","sourceKey","tenantId","unit"],"additionalProperties":false}},"subscriptions":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"memberSubscriptions"},"billingMethod":{"anyOf":[{"const":"manual_invoice"},{"const":"stripe"}]},"cancelAtPeriodEnd":{"type":"boolean"},"canceledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"companyId":{"type":"string","x-convex-table":"companies"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"pausedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pendingPlanEffectiveAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pendingPlanId":{"type":"string","x-convex-table":"membershipPlans"},"pendingPlanSnapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","propertyIds"],"additionalProperties":false},"pendingPlanVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"periodEnd":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"periodStart":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"planSnapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","propertyIds"],"additionalProperties":false},"planVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sourceQuoteId":{"type":"string","x-convex-table":"salesQuotes"},"status":{"anyOf":[{"const":"pending"},{"const":"trialing"},{"const":"active"},{"const":"past_due"},{"const":"paused"},{"const":"canceled"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"trialUsed":{"type":"boolean"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","billingMethod","cancelAtPeriodEnd","createdAt","memberId","planId","planSnapshot","planVersion","status","tenantId","updatedAt","version"],"additionalProperties":false}},"tenant":{"type":"object","properties":{"currency":{"type":"string"},"name":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"timezone":{"type":"string"}},"required":["currency","name","tenantId","timezone"],"additionalProperties":false}},"required":["benefits","subscriptions","tenant"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["stripeCheckoutUrl","subscriptions.stripeCustomerId","subscriptions.stripeSubscriptionId","subscriptions.stripePriceId","subscriptions.billingEmail","subscriptions.invoiceId","subscriptions.notes","subscriptions.billingTax","subscriptions.stripeAccountId","subscriptions.stripeCheckoutSessionId","subscriptions.stripeCheckoutAttempt","subscriptions.providerEventCreated","subscriptions.lastPaymentFailureAt","subscriptions.lastPaymentFailureInvoiceId","subscriptions.pendingPlanTax","subscriptions.stripeScheduleId","subscriptions.planSnapshot.priceCents","subscriptions.planSnapshot.seatLimit","subscriptions.pendingPlanSnapshot.priceCents","subscriptions.pendingPlanSnapshot.seatLimit"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.passes.create":{"post":{"operationId":"execute_portal_passes_create","summary":"Purchase a pass","description":"Reserve a pass for the caller's tenant membership and return its ID.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"requestKey":{"type":"string"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","offerId","requestKey","validFrom"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"dayPasses"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.passes.redeem":{"post":{"operationId":"execute_portal_passes_redeem","summary":"Redeem a pass","description":"Check the caller in using an active pass and return the redemption ID.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"passId":{"type":"string","x-convex-table":"dayPasses"},"requestKey":{"type":"string"}},"required":["passId","requestKey"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"passRedemptions"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.profile.get":{"post":{"operationId":"execute_portal_profile_get","summary":"Get member portal profile","description":"Return the caller's tenant member profile, groups, company name, and reminder preferences.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.profile.save":{"post":{"operationId":"execute_portal_profile_save","summary":"Save portal profile preferences","description":"Normalize profile fields and suppress SMS reminders when SMS is unavailable or no phone is present.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":2},"phone":{"type":["string","null"]},"emailReminders":{"type":"boolean"},"smsReminders":{"type":"boolean"}},"required":["name","phone","emailReminders","smsReminders"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"saved":{"const":true}},"required":["saved"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.profile.status":{"post":{"operationId":"execute_portal_profile_status","summary":"Get portal profile and SMS availability","description":"Read the member profile and server SMS capability state.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"result":{"type":"object","properties":{"companyName":{"type":["string","null"]},"groups":{"type":"array","items":{"type":"string"}},"member":{"anyOf":[{"type":"null"},{"type":"object","properties":{"email":{"type":"string"},"memberId":{"type":"string","x-convex-table":"members"},"name":{"type":"string"},"phone":{"type":["string","null"]}},"required":["email","memberId","name","phone"],"additionalProperties":false}]},"portalPreferences":{"type":"object","properties":{"emailReminders":{"type":"boolean"},"smsReminders":{"type":"boolean"}},"required":["emailReminders","smsReminders"],"additionalProperties":false},"tenant":{"type":"object","properties":{"currency":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"timezone":{"type":"string"}},"required":["currency","name","slug","timezone"],"additionalProperties":false}},"required":["groups","member","portalPreferences","tenant"],"additionalProperties":false},"smsConfigured":{"type":"boolean"},"smsSetupReason":{"type":["string","null"]}},"required":["result","smsConfigured","smsSetupReason"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchasePayments.cancel":{"post":{"operationId":"execute_portal_purchasePayments_cancel","summary":"Cancel a purchase payment","description":"Confirm provider cancellation before releasing the hold or collection.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchasePayments.get":{"post":{"operationId":"execute_portal_purchasePayments_get","summary":"Get a purchase payment","description":"Read settlement and refund state recorded by the existing domain handler.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchasePayments.pay":{"post":{"operationId":"execute_portal_purchasePayments_pay","summary":"Pay a purchase payment","description":"Pay the frozen obligation with a shared payment token or return a signed human checkout handoff.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchasePayments.quote":{"post":{"operationId":"execute_portal_purchasePayments_quote","summary":"Quote a purchase payment","description":"Preview the saved amount, connected account profile and available payment modes.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["target"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","applicationFeeCents","currency","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":["read"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchasePayments.recover":{"post":{"operationId":"execute_portal_purchasePayments_recover","summary":"Recover a purchase payment","description":"Reconcile the original payment without creating a replacement charge.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchasePayments.reserve":{"post":{"operationId":"execute_portal_purchasePayments_reserve","summary":"Reserve a purchase payment","description":"Freeze the owned commercial obligation before delegating a one-time payment.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedPricingHash":{"type":"string"},"target":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","x-convex-table":"eventRegistrations"},"kind":{"const":"event"}},"required":["id","kind"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","x-convex-table":"dayPasses"},"kind":{"const":"pass"}},"required":["id","kind"],"additionalProperties":false}]}},"required":["expectedPricingHash","target"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["sharedPaymentToken","guestCapability","clientSecret","sessionUrl","checkoutUrl","paymentMethod"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.purchases.list":{"post":{"operationId":"execute_portal_purchases_list","summary":"List member purchases","description":"Return the caller's passes and event registrations for the selected tenant.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"passes":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"dayPasses"},"allocationStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"bufferAfterMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bufferBeforeMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"fulfilledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"inventoryAllocationVersion":{"const":1},"memberId":{"type":"string","x-convex-table":"members"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentDueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pricingUnit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]},"purchaseKind":{"anyOf":[{"const":"pass"},{"const":"rental"},{"const":"service"}]},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"returnedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"pending_payment"},{"const":"active"},{"const":"redeemed"},{"const":"revoked"},{"const":"expired"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"unitPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","components","createdAt","currency","memberId","name","offerId","offerVersion","paymentDueAt","requestKey","resourceId","status","tenantId","updatedAt","validFrom","validUntil"],"additionalProperties":false}},"registrations":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"eventRegistrations"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attendedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"eventId":{"type":"string","x-convex-table":"eventSessions"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"memberId":{"type":"string","x-convex-table":"members"},"paymentDueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentRevokedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"waitlisted"},{"const":"pending_payment"},{"const":"confirmed"},{"const":"attended"},{"const":"cancelled"},{"const":"expired"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","createdAt","currency","eventId","memberId","requestKey","status","tenantId","updatedAt"],"additionalProperties":false}}},"required":["passes","registrations"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.quotes.accept":{"post":{"operationId":"execute_portal_quotes_accept","summary":"Accept saved quote terms","description":"Record version-bound recipient acceptance evidence and convert the quote without charging.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"evidence":{"type":"string"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"termsAccepted":{"type":"boolean"},"termsVersion":{"type":"string"}},"required":["evidence","expectedVersion","quoteId","termsAccepted","termsVersion"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"bookingId":{"anyOf":[{"type":"string","x-convex-table":"bookings"},{"type":"null"}]},"handoffUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"invoiceId":{"anyOf":[{"type":"string","x-convex-table":"invoices"},{"type":"null"}]},"paymentMode":{"type":"string"},"planId":{"anyOf":[{"type":"string","x-convex-table":"invoicePaymentPlans"},{"type":"null"}]},"quoteId":{"type":"string","x-convex-table":"salesQuotes"},"subscriptionId":{"anyOf":[{"type":"string","x-convex-table":"memberSubscriptions"},{"type":"null"}]}},"required":["bookingId","handoffUrl","invoiceId","paymentMode","planId","quoteId","subscriptionId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":["financial","write"],"x-keyvra-result-redactions":["acceptanceEvidence","sharedPaymentToken","sessionUrl","checkoutUrl"],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.quotes.get":{"post":{"operationId":"execute_portal_quotes_get","summary":"Get own quote","description":"Return a sent or accepted quote for its verified recipient.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"quoteId":{"type":"string","x-convex-table":"salesQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"salesQuotes"},"acceptanceEvidence":{"type":"string"},"acceptedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"acceptedByMemberId":{"type":"string","x-convex-table":"members"},"acceptedByUserId":{"type":"string","x-convex-table":"users"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"convertedBookingId":{"type":"string","x-convex-table":"bookings"},"convertedSubscriptionId":{"type":"string","x-convex-table":"memberSubscriptions"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"depositCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"invoiceId":{"type":"string","x-convex-table":"invoices"},"leadId":{"type":"string","x-convex-table":"salesLeads"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"draft"},{"const":"sent"},{"const":"accepted"},{"const":"canceled"}]},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"anyOf":[{"type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"const":"booking"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"snapshot":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"capturedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"currency":{"type":"string"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"remoteFulfillmentPolicy":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"rules":{"type":"object","properties":{"bufferMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"horizonDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"leadMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberOnly":{"type":"boolean"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"passValidityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"}},"required":["bufferMinutes","horizonDays","leadMinutes","memberOnly","minimumMinutes","requiresApproval"],"additionalProperties":false},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","capturedAt","channelId","currency","name","offerId","quantity","resourceId","rules","terms","version"],"additionalProperties":false},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","endMs","kind","offerId","offerVersion","snapshot","spaceId","startMs"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"membership"},"planId":{"type":"string","x-convex-table":"membershipPlans"},"planVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"snapshot":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"currency":{"type":"string"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["benefits","currency","description","interval","name","priceCents","propertyIds","seatLimit"],"additionalProperties":false}},"required":["kind","planId","planVersion","snapshot"],"additionalProperties":false}]},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"taxRateName":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","benefitCents","createdAt","currency","depositCents","expiresAt","leadId","memberId","note","salesChannel","status","subtotalCents","target","taxCents","taxInclusive","taxRateBps","taxRateId","taxRateName","tenantId","title","totalCents","updatedAt","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.resourcePurchases.cancel":{"post":{"operationId":"execute_portal_resourcePurchases_cancel","summary":"Cancel a rental or service purchase","description":"Revoke the caller's unpaid or free active purchase and release its inventory allocations.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"purchaseId":{"type":"string","x-convex-table":"dayPasses"}},"required":["purchaseId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.resourcePurchases.create":{"post":{"operationId":"execute_portal_resourcePurchases_create","summary":"Purchase a rental or service","description":"Reserve a rental or service for the caller and return its purchase ID.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","offerId","quantity","requestKey","validFrom","validUntil"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"dayPasses"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.resourcePurchases.list":{"post":{"operationId":"execute_portal_resourcePurchases_list","summary":"List member rentals and services","description":"Return the caller's recent rental and service purchases for the selected tenant.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"dayPasses"},"allocationStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"bufferAfterMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bufferBeforeMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"fulfilledAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"inventoryAllocationVersion":{"const":1},"memberId":{"type":"string","x-convex-table":"members"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentDueAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"pricingUnit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]},"purchaseKind":{"anyOf":[{"const":"pass"},{"const":"rental"},{"const":"service"}]},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"returnedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"salesChannel":{"anyOf":[{"const":"direct"},{"const":"marketplace"}]},"status":{"anyOf":[{"const":"pending_payment"},{"const":"active"},{"const":"redeemed"},{"const":"revoked"},{"const":"expired"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"unitPriceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","components","createdAt","currency","memberId","name","offerId","offerVersion","paymentDueAt","requestKey","resourceId","status","tenantId","updatedAt","validFrom","validUntil"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.resourcePurchases.quote":{"post":{"operationId":"execute_portal_resourcePurchases_quote","summary":"Quote a rental or service","description":"Return current price, tax, units, quantity, time window, and approval requirement for a member purchase.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","offerId","quantity","validFrom","validUntil"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"name":{"type":"string"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requiresApproval":{"type":"boolean"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"unit":{"type":"string"},"units":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","currency","name","quantity","requiresApproval","tax","unit","units","validFrom","validUntil"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.resourceRequests.create":{"post":{"operationId":"execute_portal_resourceRequests_create","summary":"Request rental or service approval","description":"Create an approval request for the caller's selected rental or service window and quantity.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"note":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"validFrom":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"validUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","expectedVersion","note","offerId","quantity","requestKey","validFrom","validUntil"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","x-convex-table":"bookingRequests"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/portal.resourceRequests.list":{"post":{"operationId":"execute_portal_resourceRequests_list","summary":"List rental and service requests","description":"Return the caller's recent approval requests that do not target a space.","tags":["portal"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"bookingRequests"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"apiReviewedTerms":{"type":"string"},"bookingId":{"type":"string","x-convex-table":"bookings"},"bufferMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"components":{"type":"array","items":{"type":"object","properties":{"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"}},"required":["quantity","resourceId"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"decidedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"decidedBy":{"type":"string","x-convex-table":"users"},"decidedByApiKeyRef":{"type":"string"},"decisionReason":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberId":{"type":"string","x-convex-table":"members"},"note":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"purchaseId":{"type":"string","x-convex-table":"dayPasses"},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"requestKey":{"type":"string"},"requestedByApiKeyRef":{"type":"string"},"resourceId":{"type":"string","x-convex-table":"resources"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"approved"},{"const":"declined"},{"const":"expired"},{"const":"consumed"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","bufferMs","channelId","components","createdAt","currency","endMs","expiresAt","memberId","note","offerId","offerVersion","requestKey","resourceId","startMs","status","tenantId","title","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["member"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/reports.bookings.get":{"post":{"operationId":"execute_reports_bookings_get","summary":"Get booking report","description":"Return booking summaries, trends, status funnel, lead times, peak hours and booking rows.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.datasets.export":{"post":{"operationId":"execute_reports_datasets_export","summary":"Export a report dataset","description":"Return structured rows for an overview, revenue, bookings, occupancy or members dataset.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"dataset":{"anyOf":[{"const":"overview"},{"const":"revenue"},{"const":"bookings"},{"const":"occupancy"},{"const":"members"}]},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"groupBy":{"anyOf":[{"const":"day"},{"const":"week"},{"const":"month"}]},"propertyId":{"type":"string","x-convex-table":"properties"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["dataset","endMs","groupBy","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"bulk","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["confirmationId"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.filters.options":{"post":{"operationId":"execute_reports_filters_options","summary":"Get report filter options","description":"Return active tenant property and space IDs and labels for report filtering.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.financialCollections.get":{"post":{"operationId":"execute_reports_financialCollections_get","summary":"Get financial collection totals","description":"Return currency-separated payment, refund, credit-note and fee totals, unknown-date totals and ledger readiness.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"ready":{"type":"boolean"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"timeZone":{"const":"UTC"},"totals":{"type":"array","items":{"type":"object","properties":{"creditNotesCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"entries":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"legacyDateEntries":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"netCashCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentsCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"platformFeesCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundsCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["creditNotesCents","currency","entries","legacyDateEntries","netCashCents","paymentsCents","platformFeesCents","refundsCents"],"additionalProperties":false}},"unknownDateTotals":{"type":"array","items":{"type":"object","properties":{"creditNotesCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"entries":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"legacyDateEntries":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"netCashCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paymentsCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"platformFeesCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"refundsCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["creditNotesCents","currency","entries","legacyDateEntries","netCashCents","paymentsCents","platformFeesCents","refundsCents"],"additionalProperties":false}}},"required":["endMs","ready","startMs","timeZone","totals","unknownDateTotals"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.financialEntries.list":{"post":{"operationId":"execute_reports_financialEntries_list","summary":"List financial entries","description":"Return paginated financial-ledger entries for a time range or entries with unknown transaction dates.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unknownDates":{"type":"boolean"}},"required":["endMs","paginationOpts","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"financialLedger"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"category":{"anyOf":[{"const":"booking"},{"const":"membership"},{"const":"event"},{"const":"pass"},{"const":"rental"},{"const":"service"},{"const":"installment"},{"const":"unapplied"}]},"currency":{"type":"string"},"dateSource":{"anyOf":[{"const":"provider_event"},{"const":"api_confirmation"},{"const":"verified_recording"},{"const":"manual_verification"},{"const":"legacy_recorded"},{"const":"legacy_unknown"}]},"kind":{"anyOf":[{"const":"payment"},{"const":"refund"},{"const":"credit_note"},{"const":"platform_fee"}]},"occurredAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"recordedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"source":{"anyOf":[{"const":"invoices"},{"const":"membershipInvoices"},{"const":"commerceReceipts"},{"const":"commerceCheckouts"},{"const":"invoicePaymentReceipts"},{"const":"creditNotes"},{"const":"invoicePaymentCollections"}]},"sourceId":{"type":"string"},"sourceKey":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["_creationTime","_id","amountCents","category","currency","dateSource","kind","occurredAt","recordedAt","source","sourceId","sourceKey","tenantId"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.members.get":{"post":{"operationId":"execute_reports_members_get","summary":"Get member report","description":"Return member activity, growth series, company usage and revenue summaries.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.occupancy.get":{"post":{"operationId":"execute_reports_occupancy_get","summary":"Get occupancy report","description":"Return space/property utilization, attendance, occupancy estimates, arrivals and coverage metadata.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.overview.get":{"post":{"operationId":"execute_reports_overview_get","summary":"Get report overview","description":"Return booking, member, revenue and utilization KPIs, revenue trends, heatmap and top spaces.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyId":{"type":"string","x-convex-table":"properties"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.portfolio.get":{"post":{"operationId":"execute_reports_portfolio_get","summary":"Get portfolio report","description":"Compare all tenant properties using bookings, net revenue and utilization, grouped by currency.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"groups":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{"availableHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookedHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookingCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"netRevenueCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"otherCurrencyRevenue":{"type":"array","items":{"type":"object","properties":{"currency":{"type":"string"},"netRevenueCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","netRevenueCents"],"additionalProperties":false}},"previous":{"anyOf":[{"type":"object","properties":{"availableHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookedHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookingCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"netRevenueCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"utilizationPct":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["availableHours","bookedHours","bookingCount","netRevenueCents","utilizationPct"],"additionalProperties":false},{"type":"null"}]},"property":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"region":{"anyOf":[{"type":"string"},{"type":"null"}]},"regionId":{"anyOf":[{"type":"string","x-convex-table":"regions"},{"type":"null"}]},"utilizationPct":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["availableHours","bookedHours","bookingCount","currency","netRevenueCents","otherCurrencyRevenue","previous","property","propertyId","region","regionId","utilizationPct"],"additionalProperties":false}},"totals":{"type":"object","properties":{"availableHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookedHours":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"bookingCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"netRevenueCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"previousNetRevenueCents":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"utilizationPct":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]}},"required":["availableHours","bookedHours","bookingCount","netRevenueCents","previousNetRevenueCents","utilizationPct"],"additionalProperties":false}},"required":["currency","rows","totals"],"additionalProperties":false}},"propertyCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"range":{"type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","startMs"],"additionalProperties":false},"revenueMayBeIncomplete":{"type":"boolean"},"rowsMayBeIncomplete":{"type":"boolean"}},"required":["compare","groups","propertyCount","range","revenueMayBeIncomplete","rowsMayBeIncomplete"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/reports.revenue.get":{"post":{"operationId":"execute_reports_revenue_get","summary":"Get revenue report","description":"Return captured-invoice revenue series, breakdowns, invoice rows and refund totals.","tags":["reports"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"compare":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"groupBy":{"anyOf":[{"const":"day"},{"const":"week"},{"const":"month"}]},"propertyId":{"type":"string","x-convex-table":"properties"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","groupBy","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["report-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.businessProfile.update":{"post":{"operationId":"execute_settings_businessProfile_update","summary":"Update the business profile","description":"Save business name, address, contact email, and phone and return saved status and update time.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"address":{"type":"string"},"contactEmail":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"required":["address","contactEmail","name","phone"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.embeds.get":{"post":{"operationId":"execute_settings_embeds_get","summary":"Get embed settings","description":"Return normalized allowed embed origins, headless-catalog status, and the tenant's public site identifiers.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.embeds.setAllowedOrigins":{"post":{"operationId":"execute_settings_embeds_setAllowedOrigins","summary":"Set allowed embed origins","description":"Save normalized embed origins and return accepted origins and rejected-entry details.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"origins":{"type":"array","items":{"type":"string"}}},"required":["origins"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.embeds.setHeadlessCatalogEnabled":{"post":{"operationId":"execute_settings_embeds_setHeadlessCatalogEnabled","summary":"Set public catalog access","description":"Enable or disable the tenant's keyless headless catalog and return embed settings.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.general.get":{"post":{"operationId":"execute_settings_general_get","summary":"Get general settings","description":"Return business profile, locale, normalized tax settings, and last update time.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.language.set":{"post":{"operationId":"execute_settings_language_set","summary":"Set interface language","description":"Persist the caller's staff language preference and return whether it changed.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"language":{"anyOf":[{"const":"en"},{"const":"fr"}]}},"required":["language"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"saved":{"type":"boolean"}},"required":["saved"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/settings.locale.update":{"post":{"operationId":"execute_settings_locale_update","summary":"Update locale settings","description":"Save tenant currency, date format, and timezone and return saved status and update time.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"currency":{"type":"string"},"dateFormat":{"anyOf":[{"const":"MM/dd/yyyy"},{"const":"dd/MM/yyyy"},{"const":"yyyy-MM-dd"},{"const":"MMM d, yyyy"}]},"timezone":{"type":"string"}},"required":["currency","dateFormat","timezone"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.payments.get":{"post":{"operationId":"execute_settings_payments_get","summary":"Get payment settings","description":"Return Stripe Connect account status, currency, payout-schedule description, and Stripe configuration state.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["billing-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.savedViews.create":{"post":{"operationId":"execute_settings_savedViews_create","summary":"Save view","description":"Create a named view in the caller's preferences and return its UUID.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"filters":{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"search":{"type":"string"},"sortDirection":{"anyOf":[{"const":"asc"},{"const":"desc"}]},"sortId":{"anyOf":[{"type":"null"},{"const":"name"},{"const":"email"},{"const":"company"},{"const":"credit"},{"const":"bookingsCount"},{"const":"joinedAt"}]},"tag":{"type":"string"}},"required":["search","sortDirection","sortId","tag"],"additionalProperties":false},"name":{"type":"string"}},"required":["expectedVersion","filters","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.savedViews.createBooking":{"post":{"operationId":"execute_settings_savedViews_createBooking","summary":"Save view","description":"Create a named view in the caller's preferences and return its UUID.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"filters":{"type":"object","properties":{"endDate":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"search":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startDate":{"type":"string"},"statuses":{"type":"array","items":{"anyOf":[{"const":"confirmed"},{"const":"checked_in"},{"const":"completed"},{"const":"no_show"},{"const":"cancelled"}]}}},"required":["endDate","search","startDate","statuses"],"additionalProperties":false},"name":{"type":"string"}},"required":["expectedVersion","filters","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.savedViews.delete":{"post":{"operationId":"execute_settings_savedViews_delete","summary":"Delete saved view","description":"Remove one of the caller's saved views, increment the preference version, and return null.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"id":{"type":"string"}},"required":["expectedVersion","id"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"null"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.savedViews.list":{"post":{"operationId":"execute_settings_savedViews_list","summary":"List saved views (members)","description":"Return the caller's saved views for a kind and the shared saved-view version.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"views":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"filters":{"anyOf":[{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"const":"members"},"search":{"type":"string"},"sortDirection":{"anyOf":[{"const":"asc"},{"const":"desc"}]},"sortId":{"anyOf":[{"type":"null"},{"const":"name"},{"const":"email"},{"const":"company"},{"const":"credit"},{"const":"bookingsCount"},{"const":"joinedAt"}]},"tag":{"type":"string"}},"required":["kind","search","sortDirection","sortId","tag"],"additionalProperties":false},{"type":"object","properties":{"endDate":{"type":"string"},"kind":{"const":"bookings"},"propertyId":{"type":"string","x-convex-table":"properties"},"search":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startDate":{"type":"string"},"statuses":{"type":"array","items":{"anyOf":[{"const":"confirmed"},{"const":"checked_in"},{"const":"completed"},{"const":"no_show"},{"const":"cancelled"}]}}},"required":["endDate","kind","search","startDate","statuses"],"additionalProperties":false}]},"id":{"type":"string"},"name":{"type":"string"}},"required":["createdAt","filters","id","name"],"additionalProperties":false}}},"required":["version","views"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["member-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.savedViews.list.bookings":{"post":{"operationId":"execute_settings_savedViews_list_bookings","summary":"List saved views (bookings)","description":"Return the caller's saved views for a kind and the shared saved-view version.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"views":{"type":"array","items":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"filters":{"anyOf":[{"type":"object","properties":{"companyId":{"type":"string","x-convex-table":"companies"},"groupId":{"type":"string","x-convex-table":"memberGroups"},"kind":{"const":"members"},"search":{"type":"string"},"sortDirection":{"anyOf":[{"const":"asc"},{"const":"desc"}]},"sortId":{"anyOf":[{"type":"null"},{"const":"name"},{"const":"email"},{"const":"company"},{"const":"credit"},{"const":"bookingsCount"},{"const":"joinedAt"}]},"tag":{"type":"string"}},"required":["kind","search","sortDirection","sortId","tag"],"additionalProperties":false},{"type":"object","properties":{"endDate":{"type":"string"},"kind":{"const":"bookings"},"propertyId":{"type":"string","x-convex-table":"properties"},"search":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"},"startDate":{"type":"string"},"statuses":{"type":"array","items":{"anyOf":[{"const":"confirmed"},{"const":"checked_in"},{"const":"completed"},{"const":"no_show"},{"const":"cancelled"}]}}},"required":["endDate","kind","search","startDate","statuses"],"additionalProperties":false}]},"id":{"type":"string"},"name":{"type":"string"}},"required":["createdAt","filters","id","name"],"additionalProperties":false}}},"required":["version","views"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.tax.update":{"post":{"operationId":"execute_settings_tax_update","summary":"Update tax settings","description":"Save normalized tax rates and display policy and return saved status, tax settings, and update time.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"tax":{"type":"object","properties":{"defaultRateId":{"type":"string"},"rates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["id","name","rateBps"],"additionalProperties":false}},"taxInclusiveDisplay":{"type":"boolean"}},"required":["rates","taxInclusiveDisplay"],"additionalProperties":false}},"required":["tax"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/settings.workspace.getNavigation":{"post":{"operationId":"execute_settings_workspace_getNavigation","summary":"Get workspace navigation","description":"Return the workspace business type, selected modules, version, commerce mode, and management capability.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"businessType":{"anyOf":[{"const":"coworking"},{"const":"office"},{"const":"studio"},{"const":"venue"},{"const":"community"},{"const":"multi_use"},{"const":"other"}]},"canManage":{"type":"boolean"},"mode":{"anyOf":[{"const":"host"},{"const":"business"}]},"modules":{"type":"array","items":{"anyOf":[{"const":"spaces"},{"const":"bookings"},{"const":"members"},{"const":"memberships"},{"const":"billing"},{"const":"access"},{"const":"events"},{"const":"marketplace"},{"const":"communications"},{"const":"operations"},{"const":"insights"},{"const":"reports"},{"const":"website"}]}},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["businessType","canManage","mode","modules","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/settings.workspace.setNavigation":{"post":{"operationId":"execute_settings_workspace_setNavigation","summary":"Set workspace navigation","description":"Save business type and normalized module selection, advance the version, and return the saved preferences.","tags":["settings"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"businessType":{"anyOf":[{"const":"coworking"},{"const":"office"},{"const":"studio"},{"const":"venue"},{"const":"community"},{"const":"multi_use"},{"const":"other"}]},"expectedVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"modules":{"type":"array","items":{"anyOf":[{"const":"spaces"},{"const":"bookings"},{"const":"members"},{"const":"memberships"},{"const":"billing"},{"const":"access"},{"const":"events"},{"const":"marketplace"},{"const":"communications"},{"const":"operations"},{"const":"insights"},{"const":"reports"},{"const":"website"}]}}},"required":["businessType","expectedVersion","modules"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"businessType":{"anyOf":[{"const":"coworking"},{"const":"office"},{"const":"studio"},{"const":"venue"},{"const":"community"},{"const":"multi_use"},{"const":"other"}]},"modules":{"type":"array","items":{"anyOf":[{"const":"spaces"},{"const":"bookings"},{"const":"members"},{"const":"memberships"},{"const":"billing"},{"const":"access"},{"const":"events"},{"const":"marketplace"},{"const":"communications"},{"const":"operations"},{"const":"insights"},{"const":"reports"},{"const":"website"}]}},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["businessType","modules","version"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-update"],"x-keyvra-conditional-permissions":[]}},"/operations/site.availability.get":{"post":{"operationId":"execute_site_availability_get","summary":"Get tenant space availability","description":"Return available intervals for a public tenant-site space and requested time window.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"hostname":{"type":"string"},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["endMs","hostname","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingOffers.list":{"post":{"operationId":"execute_site_bookingOffers_list","summary":"List public booking request offers","description":"Return public direct-channel offers for bookable tenant-site spaces.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"currency":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"type":"string"}},"required":["amountCents","channelId","currency","description","name","offerId","offerVersion","unit"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.cancel":{"post":{"operationId":"execute_site_bookingPayments_cancel","summary":"Cancel a booking payment attempt","description":"Prove provider cancellation before releasing the reservation and allowing another payment.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.get":{"post":{"operationId":"execute_site_bookingPayments_get","summary":"Read booking payment status","description":"Read persisted payment and fulfillment status after webhook settlement.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.pay":{"post":{"operationId":"execute_site_bookingPayments_pay","summary":"Pay a booking","description":"Confirm a one-time shared payment token against the frozen quote, or return a human handoff.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"sharedPaymentToken":{"type":"string"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.quote":{"post":{"operationId":"execute_site_bookingPayments_quote","summary":"Preview a booking payment","description":"Return provisional pricing and available payment modes without reserving or charging.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"handoffUrl":{"type":"string"},"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pricingHash":{"type":"string"},"provisional":{"type":"boolean"}},"required":["amountCents","currency","handoffUrl","modes","networkId","pricingHash","provisional"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.recover":{"post":{"operationId":"execute_site_bookingPayments_recover","summary":"Reconcile a booking payment attempt","description":"Find the original account-bound intent without creating a replacement charge.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"guestCapability":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"}},"required":["quoteId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"attemptId":{"anyOf":[{"type":"string","x-convex-table":"agentPaymentAttempts"},{"type":"null"}]},"currency":{"type":"string"},"deferredEffects":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"approvedEarlier":{"type":"boolean"},"currency":{"type":"string"},"key":{"type":"string"},"kind":{"anyOf":[{"const":"booking_invoice_reconciliation"},{"const":"member_credit"},{"const":"membership_benefit"},{"const":"promotion_release"},{"const":"payout_cancel"},{"const":"invoice_reconciliation"},{"const":"credit_note_reconciliation"},{"const":"booking_refund_application"}]},"retirementReason":{"anyOf":[{"const":"member_unavailable"},{"const":"invoice_unavailable"},{"const":"operator_settlement"}]}},"required":["amountCents","currency","key","kind"],"additionalProperties":false}},"effectsDeferred":{"type":"boolean"},"fulfillmentStatus":{"type":"string"},"handoff":{"anyOf":[{"type":"null"},{"type":"object","properties":{"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"reason":{"type":"string"},"url":{"type":"string"}},"required":["expiresAt","reason","url"],"additionalProperties":false}]},"pollAfterSeconds":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerRefundStatus":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"refundedCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"type":"string"},"statusOnly":{"type":"boolean"}},"required":["amountCents","attemptId","currency","fulfillmentStatus","handoff","pollAfterSeconds","quoteId","status"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoff.url"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.requestContactVerification":{"post":{"operationId":"execute_site_bookingPayments_requestContactVerification","summary":"Send purchase contact verification","description":"Send an email challenge bound to the public selection, pricing and explicit purchase consent.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"email":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedPricingHash":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"purchaseConsent":{"type":"boolean"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["email","endMs","expectedPricingHash","purchaseConsent","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"challengeId":{"type":"string","x-convex-table":"guestPaymentConsents"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"sent":{"type":"boolean"}},"required":["challengeId","expiresAt","sent"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.reserve":{"post":{"operationId":"execute_site_bookingPayments_reserve","summary":"Reserve a booking payment","description":"Freeze the authoritative amount, reservation, buyer and seller account before delegating payment.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approvalRequestId":{"type":"string","x-convex-table":"bookingRequests"},"attendeeCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expectedPricingHash":{"type":"string"},"guestCapability":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"promotionCode":{"type":"string"},"selectedAddOnIds":{"type":"array","items":{"type":"string","x-convex-table":"addOnServices"}},"slug":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","expectedPricingHash","slug","startMs"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"applicationFeeCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"breakdown":{"type":"object","properties":{"addOnCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"benefitCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"creditCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"discountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxInclusive":{"type":"boolean"},"taxRateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxRateId":{"type":"string"},"taxRateName":{"type":"string"},"taxableSubtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["addOnCents","benefitCents","creditCents","discountCents","subtotalCents","taxCents","taxInclusive","taxRateBps","taxRateName","taxableSubtotalCents","totalCents"],"additionalProperties":false},"currency":{"type":"string"},"expiresAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"handoffUrl":{"type":"string"},"payment":{"type":"object","properties":{"modes":{"type":"array","items":{"type":"string"}},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sptRequirements":{"anyOf":[{"type":"null"},{"type":"object","properties":{"currency":{"type":"string"},"expiresAtMinimum":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"expiresAtRecommended":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maxAmount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["currency","expiresAtMinimum","expiresAtRecommended","maxAmount"],"additionalProperties":false}]}},"required":["modes","networkId","sptRequirements"],"additionalProperties":false},"pricingHash":{"type":"string"},"quoteId":{"type":"string","x-convex-table":"agentPaymentQuotes"},"quoteVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"target":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"}},"required":["id","kind"],"additionalProperties":false}},"required":["amountCents","applicationFeeCents","breakdown","currency","expiresAt","handoffUrl","payment","pricingHash","quoteId","quoteVersion","target"],"additionalProperties":false},{"type":"object","properties":{"handoffUrl":{"type":"string"},"quoteId":{"type":"null"},"reason":{"type":"string"},"status":{"const":"handoff_required"}},"required":["handoffUrl","quoteId","reason","status"],"additionalProperties":false}]},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"financial","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":["handoffUrl"],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.bookingPayments.verifyContact":{"post":{"operationId":"execute_site_bookingPayments_verifyContact","summary":"Verify purchase contact","description":"Consume the challenge once and issue a short-lived purchase capability.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"challengeId":{"type":"string","x-convex-table":"guestPaymentConsents"},"verificationCode":{"type":"string"}},"required":["challengeId","verificationCode"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expiresAt":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"guestCapability":{"anyOf":[{"type":"string"},{"type":"null"}]},"verified":{"type":"boolean"}},"required":["expiresAt","guestCapability","verified"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.checkoutConfirmations.get":{"post":{"operationId":"execute_site_checkoutConfirmations_get","summary":"Get tenant checkout confirmation","description":"Return tenant-scoped booking confirmation, guest email, add-ons, payment state, and calendar content.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"confirmationId":{"type":"string"},"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["confirmationId","hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.contact.send":{"post":{"operationId":"execute_site_contact_send","summary":"Send contact request","description":"Save a tenant-site contact request and return submission and notification results.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"email":{"type":"string"},"hostname":{"type":"string"},"message":{"type":"string"},"name":{"type":"string"},"sourcePath":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]},"website":{"type":"string"}},"required":["email","hostname","message","name"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.eventSessions.list":{"post":{"operationId":"execute_site_eventSessions_list","summary":"List public event sessions","description":"Return upcoming open event sessions offered through a tenant's public direct channel.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"eventSessions"},"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"description":{"type":"string"},"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"fulfillment":{"anyOf":[{"type":"object","properties":{"kind":{"const":"remote"},"policy":{"type":"string"}},"required":["kind","policy"],"additionalProperties":false},{"type":"object","properties":{"address":{"type":"string"},"kind":{"const":"location"},"name":{"type":"string"},"propertyId":{"type":"string","x-convex-table":"properties"},"timezone":{"type":"string"}},"required":["address","kind","name","propertyId","timezone"],"additionalProperties":false}]},"offerId":{"type":"string","x-convex-table":"offers"},"offerVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceId":{"type":"string","x-convex-table":"resources"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"open"},{"const":"cancelled"}]},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"tenantId":{"type":"string","x-convex-table":"tenants"},"title":{"type":"string"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","amountCents","capacity","createdAt","currency","description","endMs","offerId","offerVersion","startMs","status","tenantId","title","updatedAt"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.events.list":{"post":{"operationId":"execute_site_events_list","summary":"List tenant-site events","description":"Return upcoming events embedded in the tenant's published CMS page blocks.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.membershipOfferings.list":{"post":{"operationId":"execute_site_membershipOfferings_list","summary":"List tenant membership offerings","description":"Return tenant member-group descriptions, allowed space counts and types, discount labels, and contact links.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.membershipPlans.list":{"post":{"operationId":"execute_site_membershipPlans_list","summary":"List published membership plans","description":"Return the resolved tenant's summary and up to 100 published, non-deleted membership plans.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"plans":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"membershipPlans"},"benefits":{"type":"array","items":{"type":"object","properties":{"expiresAfterDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"key":{"type":"string"},"label":{"type":"string"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"quantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"resourceIds":{"type":"array","items":{"type":"string","x-convex-table":"resources"}},"unit":{"anyOf":[{"const":"minutes"},{"const":"credit_cents"},{"const":"guest_pass"},{"const":"visit"},{"const":"print_page"},{"const":"wifi_minute"},{"const":"parking_minute"}]}},"required":["key","label","propertyIds","quantity","resourceIds","unit"],"additionalProperties":false}},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"deletedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"description":{"type":"string"},"interval":{"anyOf":[{"const":"month"},{"const":"year"}]},"name":{"type":"string"},"priceCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"propertyIds":{"type":"array","items":{"type":"string","x-convex-table":"properties"}},"seatLimit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"draft"},{"const":"published"},{"const":"archived"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"trialDays":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","benefits","createdAt","currency","description","interval","name","priceCents","propertyIds","seatLimit","status","tenantId","updatedAt","version"],"additionalProperties":false}},"tenant":{"type":"object","properties":{"currency":{"type":"string"},"name":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"},"timezone":{"type":"string"}},"required":["currency","name","tenantId","timezone"],"additionalProperties":false}},"required":["plans","tenant"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.offers.getEmbed":{"post":{"operationId":"execute_site_offers_getEmbed","summary":"Get public embed offer","description":"Return a visible direct-booking offer, tenant name/slug, and permitted frame origins.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"offerId":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname","offerId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.pages.get":{"post":{"operationId":"execute_site_pages_get","summary":"Get public page","description":"Return published CMS content by tenant ID and path, including redirect metadata or a not-found result.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"path":{"type":"string"},"tenantId":{"type":"string","x-convex-table":"tenants"}},"required":["path","tenantId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.pages.getByHost":{"post":{"operationId":"execute_site_pages_getByHost","summary":"Get public page by host","description":"Resolve a tenant host and return its published CMS page or redirect metadata.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"path":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname","path"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.passOffers.list":{"post":{"operationId":"execute_site_passOffers_list","summary":"List public pass offers","description":"Return publicly purchasable pass offers with direct channel IDs, versions, tax, and validity duration.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"channelId":{"type":"string","x-convex-table":"channels"},"currency":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"tax":{"type":"object","properties":{"inclusive":{"type":"boolean"},"rateBps":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"rateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rateName":{"type":"string"},"subtotalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"taxCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"totalCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["inclusive","rateBps","rateId","rateName","subtotalCents","taxCents","totalCents"],"additionalProperties":false},"validityMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["amountCents","channelId","currency","description","name","offerId","tax","version"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.resourceOffers.list":{"post":{"operationId":"execute_site_resourceOffers_list","summary":"List public rental and service offers","description":"Return public direct-channel rental and service offers with quantity limits, terms, and approval requirements.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"channelId":{"type":"string","x-convex-table":"channels"},"description":{"type":"string"},"maximumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumQuantity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"minimumMinutes":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"offerId":{"type":"string","x-convex-table":"offers"},"purchaseKind":{"anyOf":[{"const":"rental"},{"const":"service"}]},"requiresApproval":{"type":"boolean"},"resourceName":{"type":"string"},"terms":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"minimumUnits":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"unit":{"anyOf":[{"const":"hour"},{"const":"half_day"},{"const":"day"},{"const":"week"},{"const":"month"},{"const":"year"},{"const":"unit"}]}},"required":["amountCents","currency","minimumUnits","unit"],"additionalProperties":false},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["channelId","description","maximumQuantity","minimumMinutes","name","offerId","purchaseKind","requiresApproval","resourceName","terms","version"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.spaces.get":{"post":{"operationId":"execute_site_spaces_get","summary":"Get tenant-site space","description":"Return a tenant's public space details, media, amenities, pricing, rules, and availability.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"availabilityEndMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"availabilityStartMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"slug":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname","slug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/site.spaces.list":{"post":{"operationId":"execute_site_spaces_list","summary":"List public tenant spaces","description":"Return filtered public space cards and available amenity and space-type filters for a tenant.","tags":["site"],"security":[{},{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"amenityKeys":{"type":"array","items":{"type":"string"}},"capacity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"customDomain":{"type":"boolean"},"hostname":{"type":"string"},"spaceType":{"type":"string"},"tenantSlug":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["hostname"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["public"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/staff.customRoles.list":{"post":{"operationId":"execute_staff_customRoles_list","summary":"List custom roles","description":"Return the tenant's custom role definitions, including archived definitions.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"tenantCustomRoles"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdByUserId":{"type":"string","x-convex-table":"users"},"description":{"type":"string"},"name":{"type":"string"},"permissions":{"type":"array","items":{"anyOf":[{"const":"tenant-read"},{"const":"tenant-update"},{"const":"billing-read"},{"const":"billing-manage"},{"const":"subscription-manage"},{"const":"staff-read"},{"const":"invite-user"},{"const":"staff-manage"},{"const":"space-read"},{"const":"space-create"},{"const":"space-update"},{"const":"space-delete"},{"const":"space-publish"},{"const":"booking-read"},{"const":"booking-create"},{"const":"booking-update"},{"const":"booking-cancel"},{"const":"booking-checkin"},{"const":"booking-refund"},{"const":"member-read"},{"const":"member-create"},{"const":"member-update"},{"const":"member-delete"},{"const":"member-import"},{"const":"member-export"},{"const":"community-manage"},{"const":"operation-read"},{"const":"operation-create"},{"const":"operation-update"},{"const":"operation-assign"},{"const":"operation-complete"},{"const":"report-read"},{"const":"integration-read"},{"const":"integration-manage"},{"const":"cms-read"},{"const":"cms-manage"},{"const":"ai-use"},{"const":"ai-manage"}]}},"status":{"anyOf":[{"const":"active"},{"const":"archived"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","createdAt","createdByUserId","description","name","permissions","status","tenantId","updatedAt","version"],"additionalProperties":false}},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["staff-read"],"x-keyvra-conditional-permissions":[]}},"/operations/staff.customRoles.listStaff":{"post":{"operationId":"execute_staff_customRoles_listStaff","summary":"List custom-role assignment candidates","description":"Return a paginated list of non-owner staff with current role and custom-role assignment.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"customRoleId":{"type":"string","x-convex-table":"tenantCustomRoles"},"email":{"type":"string"},"id":{"type":"string","x-convex-table":"users"},"name":{"type":"string"},"role":{"type":"string"}},"required":["email","id","name","role"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/staff.enterpriseConnections.list":{"post":{"operationId":"execute_staff_enterpriseConnections_list","summary":"List enterprise connections","description":"Return enterprise connection documents, workspace slug, and runtime availability.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connections":{"type":"array","items":{"type":"object","properties":{"_creationTime":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"_id":{"type":"string","x-convex-table":"enterpriseIdentityConnections"},"allowExistingAccountLinking":{"type":"boolean"},"audience":{"type":"string"},"authOrganizationId":{"type":"string"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdByUserId":{"type":"string","x-convex-table":"users"},"defaultCustomRoleId":{"type":"string","x-convex-table":"tenantCustomRoles"},"defaultRole":{"anyOf":[{"const":"owner"},{"const":"ops_manager"},{"const":"front_desk"},{"const":"cleaning_staff"},{"const":"maintenance_staff"},{"const":"finance"},{"const":"community"},{"const":"events"},{"const":"it"},{"const":"custom"}]},"domain":{"type":"string"},"domainVerifiedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"domainVerifiedUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"entryPoint":{"type":"string"},"issuer":{"type":"string"},"lastSignInAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"name":{"type":"string"},"nextDomainCheckAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"protocol":{"anyOf":[{"const":"oidc"},{"const":"saml"}]},"providerConfiguredVersion":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"providerId":{"type":"string"},"status":{"anyOf":[{"const":"draft"},{"const":"configured"},{"const":"active"},{"const":"disabled"}]},"tenantId":{"type":"string","x-convex-table":"tenants"},"updatedAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"verificationLeaseUntil":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["_creationTime","_id","allowExistingAccountLinking","audience","authOrganizationId","createdAt","createdByUserId","defaultRole","domain","issuer","name","protocol","providerId","status","tenantId","updatedAt","version"],"additionalProperties":false}},"runtimeAvailable":{"type":"boolean"},"workspaceSlug":{"type":"string"}},"required":["connections","runtimeAvailable","workspaceSlug"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["domainChallenge"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["staff-read"],"x-keyvra-conditional-permissions":[]}},"/operations/staff.enterprisePrincipals.list":{"post":{"operationId":"execute_staff_enterprisePrincipals_list","summary":"List enterprise staff identities","description":"Return paginated staff identity summaries associated with a tenant enterprise connection.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","x-convex-table":"enterpriseIdentityConnections"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["connectionId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"disabled":{"type":"boolean"},"email":{"type":"string"},"id":{"type":"string","x-convex-table":"users"},"name":{"type":"string"},"role":{"type":"string"}},"required":["disabled","email","id","name","role"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["staff-read"],"x-keyvra-conditional-permissions":[]}},"/operations/staff.profile.get":{"post":{"operationId":"execute_staff_profile_get","summary":"Get own staff profile","description":"Return the caller's profile fields, preferences, role, user id, and resolved avatar URL.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/staff.scimGroups.listMembers":{"post":{"operationId":"execute_staff_scimGroups_listMembers","summary":"List SCIM group members","description":"Return paginated directory user summaries for a group.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"groupId":{"type":"string","x-convex-table":"enterpriseScimGroups"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["groupId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"active":{"type":"boolean"},"displayName":{"type":"string"},"id":{"type":"string","x-convex-table":"enterpriseScimUsers"},"userName":{"type":"string"}},"required":["active","displayName","id","userName"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/staff.scimMappings.list":{"post":{"operationId":"execute_staff_scimMappings_list","summary":"List SCIM group mappings","description":"Return paginated non-deleted directory groups with their mapping and version metadata.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","x-convex-table":"enterpriseIdentityConnections"},"paginationOpts":{"type":"object","properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"endCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumBytesRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"maximumRowsRead":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"numItems":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["cursor","numItems"],"additionalProperties":false}},"required":["connectionId","paginationOpts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"continueCursor":{"type":"string"},"isDone":{"type":"boolean"},"page":{"type":"array","items":{"type":"object","properties":{"displayName":{"type":"string"},"externalId":{"type":"string"},"id":{"type":"string","x-convex-table":"enterpriseScimGroups"},"mappedCustomRoleId":{"type":"string","x-convex-table":"tenantCustomRoles"},"mappedRole":{"anyOf":[{"const":"owner"},{"const":"ops_manager"},{"const":"front_desk"},{"const":"cleaning_staff"},{"const":"maintenance_staff"},{"const":"finance"},{"const":"community"},{"const":"events"},{"const":"it"},{"const":"custom"}]},"mappingPriority":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"memberCount":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"version":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["displayName","id","memberCount","version"],"additionalProperties":false}},"pageStatus":{"anyOf":[{"const":"SplitRecommended"},{"const":"SplitRequired"},{"type":"null"}]},"splitCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["continueCursor","isDone","page"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/staff.scimProvisioning.get":{"post":{"operationId":"execute_staff_scimProvisioning_get","summary":"Get SCIM provisioning settings","description":"Return directory status, endpoint, user and group counts, and active token metadata.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"connectionId":{"type":"string","x-convex-table":"enterpriseIdentityConnections"}},"required":["connectionId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"groups":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"users":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["enabled","endpoint","groups","users"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/staff.workspace.get":{"post":{"operationId":"execute_staff_workspace_get","summary":"Get staff workspace","description":"Return tenant staff, unaccepted invitations, staff audit activity, and management capability flags.","tags":["staff"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["authInvitationId","invitationId","authSubject"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["staff-read"],"x-keyvra-conditional-permissions":[]}},"/operations/support.tickets.create":{"post":{"operationId":"execute_support_tickets_create","summary":"Create a support ticket","description":"Create a workspace support ticket for the current staff user and return its ID.","tags":["support"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"body":{"type":"string"},"category":{"anyOf":[{"const":"guest-support"},{"const":"setup"},{"const":"spaces"},{"const":"bookings"},{"const":"payments"},{"const":"integrations"},{"const":"operations"},{"const":"other"}]},"subject":{"type":"string"}},"required":["body","category","subject"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/support.tickets.list":{"post":{"operationId":"execute_support_tickets_list","summary":"List my support tickets","description":"Return the current workspace staff user's latest support tickets.","tags":["support"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"limit":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":[],"x-keyvra-conditional-permissions":[]}},"/operations/website.aiDrafts.save":{"post":{"operationId":"execute_website_aiDrafts_save","summary":"Save constrained website page","description":"Create a draft CMS page or update an existing page using validated template slots.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pageId":{"type":"string","x-convex-table":"cmsPages"},"slots":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"component":{"type":"string"},"href":{"type":"string"},"itemIds":{"type":"array","items":{"type":"string"}},"mediaStorageId":{"type":"string"},"text":{"type":"string"}},"required":["component"],"additionalProperties":false}},"slug":{"type":"string"},"templateId":{"type":"string"},"title":{"type":"string"}},"required":["slots","slug","templateId","title"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.branding.get":{"post":{"operationId":"execute_website_branding_get","summary":"Get branding","description":"Return tenant colors, fonts, logo URL, custom CSS, analytics ID, and feature availability.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.branding.update":{"post":{"operationId":"execute_website_branding_update","summary":"Update branding","description":"Replace tenant branding and save custom CSS and analytics settings; return tenant ID and branding.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"colors":{"type":"object","properties":{"accent":{"type":"string"},"background":{"type":"string"},"foreground":{"type":"string"},"primary":{"type":"string"},"secondary":{"type":"string"}},"required":["primary","secondary"],"additionalProperties":false},"customCss":{"type":"string"},"fonts":{"type":"object","properties":{"body":{"type":"string"},"heading":{"type":"string"},"mono":{"type":"string"}},"required":["body","heading"],"additionalProperties":false},"ga4MeasurementId":{"type":"string"},"logoStorageId":{"type":"string","x-convex-table":"_storage"}},"required":["colors","fonts"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.customDomains.verify":{"post":{"operationId":"execute_website_customDomains_verify","summary":"Verify custom domain","description":"Check DNS ownership and routing for a registered tenant domain; return domain and SSL status.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domain":{"type":"string"}},"required":["domain"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.domains.delete":{"post":{"operationId":"execute_website_domains_delete","summary":"Remove domain","description":"Soft-delete a tenant domain, stop its verification schedule, and clear it as the primary domain.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domain":{"type":"string"}},"required":["domain"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.domains.list":{"post":{"operationId":"execute_website_domains_list","summary":"List domains","description":"Return live domain registrations, DNS instructions, SSL state, primary selection, and management availability.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":["dnsTxtValue","verificationToken","domains.records.value"],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.domains.setPrimary":{"post":{"operationId":"execute_website_domains_setPrimary","summary":"Set primary domain","description":"Make an active tenant domain the primary website hostname and clear its redirect flag.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domain":{"type":"string"}},"required":["domain"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.domains.setRedirect":{"post":{"operationId":"execute_website_domains_setRedirect","summary":"Set domain redirect","description":"Set whether a tenant domain redirects to the primary domain.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domain":{"type":"string"},"redirectToPrimary":{"type":"boolean"}},"required":["domain","redirectToPrimary"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.domains.verify":{"post":{"operationId":"execute_website_domains_verify","summary":"Verify domain","description":"Verify tenant-domain DNS and return the verification result plus a verified boolean.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"domain":{"type":"string"}},"required":["domain"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"security","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.media.delete":{"post":{"operationId":"execute_website_media_delete","summary":"Delete media asset","description":"Remove tenant references to an image and its optimized variants, then permanently delete their blobs.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"storageId":{"type":"string","x-convex-table":"_storage"}},"required":["storageId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.media.deleteUpload":{"post":{"operationId":"execute_website_media_deleteUpload","summary":"Delete image upload","description":"Detach an image from the specified owner, tombstone its media record, and permanently delete its blob.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"owner":{"anyOf":[{"type":"object","properties":{"type":{"const":"cmsMedia"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"tenantLogo"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"type":{"const":"propertyCover"}},"required":["propertyId","type"],"additionalProperties":false},{"type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"type":{"const":"propertyImage"}},"required":["propertyId","type"],"additionalProperties":false},{"type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"},"type":{"const":"spaceCover"}},"required":["spaceId","type"],"additionalProperties":false},{"type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"},"type":{"const":"spaceImage"}},"required":["spaceId","type"],"additionalProperties":false}]},"storageId":{"type":"string","x-convex-table":"_storage"}},"required":["owner","storageId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/website.media.finalizeUpload":{"post":{"operationId":"execute_website_media_finalizeUpload","summary":"Finalize image upload","description":"Verify uploaded image bytes and metadata, attach them to a tenant owner, and return the finalized image input.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"byteSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"contentType":{"type":"string"},"fileName":{"type":"string"},"optimization":{"type":"object","properties":{"height":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalByteSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalContentType":{"type":"string"},"originalHeight":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalWidth":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"variants":{"type":"array","items":{"type":"object","properties":{"byteSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"contentType":{"type":"string"},"fileName":{"type":"string"},"height":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"anyOf":[{"const":"responsive"},{"const":"thumbnail"}]},"storageId":{"type":"string","x-convex-table":"_storage"},"width":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["byteSize","contentType","height","kind","storageId","width"],"additionalProperties":false}},"width":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["height","originalByteSize","originalContentType","originalHeight","originalWidth","variants","width"],"additionalProperties":false},"owner":{"anyOf":[{"type":"object","properties":{"type":{"const":"cmsMedia"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"tenantLogo"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"type":{"const":"propertyCover"}},"required":["propertyId","type"],"additionalProperties":false},{"type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"type":{"const":"propertyImage"}},"required":["propertyId","type"],"additionalProperties":false},{"type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"},"type":{"const":"spaceCover"}},"required":["spaceId","type"],"additionalProperties":false},{"type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"},"type":{"const":"spaceImage"}},"required":["spaceId","type"],"additionalProperties":false}]},"storageId":{"type":"string","x-convex-table":"_storage"}},"required":["byteSize","contentType","owner","storageId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"byteSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"contentType":{"type":"string"},"fileName":{"type":"string"},"optimization":{"type":"object","properties":{"height":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalByteSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalContentType":{"type":"string"},"originalHeight":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"originalWidth":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"variants":{"type":"array","items":{"type":"object","properties":{"byteSize":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"contentType":{"type":"string"},"fileName":{"type":"string"},"height":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"kind":{"anyOf":[{"const":"responsive"},{"const":"thumbnail"}]},"storageId":{"type":"string","x-convex-table":"_storage"},"width":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["byteSize","contentType","height","kind","storageId","width"],"additionalProperties":false}},"width":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["height","originalByteSize","originalContentType","originalHeight","originalWidth","variants","width"],"additionalProperties":false},"owner":{"anyOf":[{"type":"object","properties":{"type":{"const":"cmsMedia"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"tenantLogo"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"type":{"const":"propertyCover"}},"required":["propertyId","type"],"additionalProperties":false},{"type":"object","properties":{"propertyId":{"type":"string","x-convex-table":"properties"},"type":{"const":"propertyImage"}},"required":["propertyId","type"],"additionalProperties":false},{"type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"},"type":{"const":"spaceCover"}},"required":["spaceId","type"],"additionalProperties":false},{"type":"object","properties":{"spaceId":{"type":"string","x-convex-table":"spaces"},"type":{"const":"spaceImage"}},"required":["spaceId","type"],"additionalProperties":false}]},"storageId":{"type":"string","x-convex-table":"_storage"}},"required":["byteSize","contentType","owner","storageId"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-update"],"x-keyvra-conditional-permissions":[]}},"/operations/website.media.list":{"post":{"operationId":"execute_website_media_list","summary":"List media library","description":"Return live tenant images with URLs, upload metadata, optimized variants, and usage references.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.navigation.list":{"post":{"operationId":"execute_website_navigation_list","summary":"List navigation menus","description":"Return tenant header and footer navigation menus, optionally including deleted rows.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.navigation.set":{"post":{"operationId":"execute_website_navigation_set","summary":"Save navigation menu","description":"Create or replace a tenant navigation menu and return its ID.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"href":{"type":"string"},"id":{"type":"string"},"label":{"type":"string"},"opensInNewTab":{"type":"boolean"},"pageId":{"type":"string","x-convex-table":"cmsPages"},"sortOrder":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["href","id","label","opensInNewTab","sortOrder"],"additionalProperties":false}},"name":{"type":"string"},"navigationMenuId":{"type":"string","x-convex-table":"navigationMenus"},"placement":{"anyOf":[{"const":"header"},{"const":"footer"}]}},"required":["items","name","placement"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.archive":{"post":{"operationId":"execute_website_pages_archive","summary":"Archive page","description":"Move a published tenant page to archived status and return its ID and status.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pageId":{"type":"string","x-convex-table":"cmsPages"}},"required":["pageId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"destructive","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.checkSlug":{"post":{"operationId":"execute_website_pages_checkSlug","summary":"Check page slug","description":"Return a normalized slug and whether tenant pages or redirects conflict with it.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pageId":{"type":"string","x-convex-table":"cmsPages"},"slug":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.getEntitlement":{"post":{"operationId":"execute_website_pages_getEntitlement","summary":"Get page entitlement","description":"Return custom-page availability and the built-in page slugs.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.list":{"post":{"operationId":"execute_website_pages_list","summary":"List pages","description":"Return tenant CMS pages, including drafts and archived pages, optionally including deleted rows.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"includeDeleted":{"type":"boolean"}},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-read"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.publish":{"post":{"operationId":"execute_website_pages_publish","summary":"Publish page","description":"Publish a tenant draft page and return its ID and published status.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pageId":{"type":"string","x-convex-table":"cmsPages"}},"required":["pageId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.saveDraft":{"post":{"operationId":"execute_website_pages_saveDraft","summary":"Save page draft","description":"Create a draft or replace the content of an existing tenant page; return its ID.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"eyebrow":{"type":"string"},"heading":{"type":"string"},"id":{"type":"string"},"links":{"type":"array","items":{"type":"object","properties":{"href":{"type":"string"},"label":{"type":"string"}},"required":["href","label"],"additionalProperties":false}},"mediaStorageId":{"type":"string","x-convex-table":"_storage"},"settings":{},"type":{"anyOf":[{"const":"hero"},{"const":"rich_text"},{"const":"gallery"},{"const":"cta"},{"const":"space_list"}]}},"required":["id","links","type"],"additionalProperties":false}},"pageId":{"type":"string","x-convex-table":"cmsPages"},"seo":{"type":"object","properties":{"description":{"type":"string"},"imageStorageId":{"type":"string","x-convex-table":"_storage"},"keywords":{"type":"array","items":{"type":"string"}},"title":{"type":"string"}},"required":[],"additionalProperties":false},"slug":{"type":"string"},"title":{"type":"string"}},"required":["blocks","slug","title"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/website.pages.unpublish":{"post":{"operationId":"execute_website_pages_unpublish","summary":"Unpublish page","description":"Move a published tenant page to draft and clear its publication timestamp.","tags":["website"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"pageId":{"type":"string","x-convex-table":"cmsPages"}},"required":["pageId"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"write","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["cms-manage"],"x-keyvra-conditional-permissions":[]}},"/operations/workspace.dashboard.get":{"post":{"operationId":"execute_workspace_dashboard_get","summary":"Get dashboard metrics","description":"Return period metrics, activity, booking summaries, and staff capabilities for the workspace dashboard.","tags":["workspace"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"nowMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"period":{"anyOf":[{"const":"day"},{"const":"week"},{"const":"month"}]}},"required":["period"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["booking-read","member-read","space-read"],"x-keyvra-conditional-permissions":["billing-read","report-read"]}},"/operations/workspace.hostDashboard.get":{"post":{"operationId":"execute_workspace_hostDashboard_get","summary":"Get host dashboard","description":"Return tenant listing status, upcoming marketplace bookings, and permitted payout information.","tags":["workspace"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"canCreateListings":{"type":"boolean"},"canManageListings":{"type":"boolean"},"canReadPayouts":{"type":"boolean"},"commissionBps":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},{"type":"null"}]},"listings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","x-convex-table":"listings"},"moderation":{"type":"string"},"name":{"type":"string"},"published":{"type":"boolean"},"slug":{"type":"string"},"spaceId":{"type":"string","x-convex-table":"spaces"}},"required":["id","moderation","name","published","slug","spaceId"],"additionalProperties":false}},"listingsTruncated":{"type":"boolean"},"name":{"type":"string"},"payouts":{"type":"array","items":{"type":"object","properties":{"amountCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"commissionCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"createdAt":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"currency":{"type":"string"},"id":{"type":"string","x-convex-table":"payouts"},"netCents":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"status":{"anyOf":[{"const":"pending"},{"const":"paid"},{"const":"failed"},{"const":"cancelled"}]}},"required":["amountCents","commissionCents","createdAt","currency","id","netCents","status"],"additionalProperties":false}},"payoutsReady":{"type":"boolean"},"timezone":{"type":"string"},"upcoming":{"type":"array","items":{"type":"object","properties":{"endMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"},"id":{"type":"string","x-convex-table":"bookings"},"spaceName":{"type":"string"},"startMs":{"anyOf":[{"type":"number"},{"type":"object","properties":{"$float":{"type":"string","contentEncoding":"base64","pattern":"^[A-Za-z0-9+/]{11}=$"}},"required":["$float"],"additionalProperties":false,"description":"Convex float64 non-finite values and negative zero use eight little-endian IEEE 754 bytes encoded as base64."}],"x-convex-type":"float64"}},"required":["endMs","id","spaceName","startMs"],"additionalProperties":false}}},"required":["canCreateListings","canManageListings","canReadPayouts","commissionBps","listings","listingsTruncated","name","payouts","payoutsReady","timezone","upcoming"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read","booking-read"],"x-keyvra-conditional-permissions":["billing-read","report-read"]}},"/operations/workspace.marketplace.getStatus":{"post":{"operationId":"execute_workspace_marketplace_getStatus","summary":"Get marketplace participation","description":"Return participation, approval, moderation requirement, and whether the caller can change participation.","tags":["workspace"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"approved":{"type":"boolean"},"canChange":{"type":"boolean"},"enabled":{"type":"boolean"},"requiresReview":{"type":"boolean"}},"required":["approved","canChange","enabled","requiresReview"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["space-read"],"x-keyvra-conditional-permissions":[]}},"/operations/workspace.verifications.list":{"post":{"operationId":"execute_workspace_verifications_list","summary":"List host verification states","description":"Return each host-verification kind, state, and update time.","tags":["workspace"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","description":"Identical mutating calls within 24 hours replay the result; different arguments conflict.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[\\x21-\\x7e]+$"}},{"name":"Keyvra-Approval","in":"header","description":"One-time approval bound to the grant, operation and exact arguments.","schema":{"type":"string"}},{"name":"X-Request-Id","in":"header","schema":{"type":"string","minLength":1,"maxLength":64}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"args":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$schema":"https://json-schema.org/draft/2020-12/schema"},"requestId":{"type":"string"}},"required":["data","requestId"],"additionalProperties":false}}}},"202":{"description":"Human approval required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalEnvelope"}}}},"400":{"description":"invalid_request, invalid_arguments","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"invalid_token","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"permission_denied, operation_not_available, mfa_required","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"operation_not_found, not_found","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"409":{"description":"conflict, idempotency_conflict, approval_mismatch","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"410":{"description":"approval_expired","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"payment_requires_action, payment_declined, payment_token_invalid, business_rule","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"rate_limited","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"internal_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"upstream_error","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"503":{"description":"agent_payment_unavailable, agent_access_unavailable","headers":{"X-Request-Id":{"description":"Request identifier, always present.","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Per-token or per-address minute budget.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Remaining calls in this window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Budget reset time.","schema":{"type":"integer"}},"Cache-Control":{"schema":{"const":"no-store"}},"Retry-After":{"description":"Seconds until retry.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}},"x-keyvra-tiers":["operator"],"x-keyvra-risk":"read","x-keyvra-risk-flags":[],"x-keyvra-result-redactions":[],"x-keyvra-handoff-paths":[],"x-keyvra-permission-alternatives":[],"x-keyvra-required-permissions":["tenant-read"],"x-keyvra-conditional-permissions":[]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"kva_<cus|mem|opr|plt>_<prefix>_<secret>"}},"schemas":{"ErrorEnvelope":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"enum":["invalid_request","invalid_arguments","invalid_token","permission_denied","operation_not_available","mfa_required","operation_not_found","not_found","conflict","idempotency_conflict","approval_mismatch","approval_expired","payment_requires_action","payment_declined","payment_token_invalid","business_rule","rate_limited","internal_error","upstream_error","agent_payment_unavailable","agent_access_unavailable"]},"message":{"type":"string"},"requestId":{"type":"string"},"retryable":{"type":"boolean"},"details":{"type":"object","additionalProperties":true}},"required":["code","message","requestId","retryable"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"ApprovalStatus":{"type":"object","properties":{"id":{"type":"string"},"status":{"enum":["pending","approved","rejected","expired"]},"operationId":{"type":"string"},"risk":{"enum":["destructive","financial","bulk","security"]},"expiresAt":{"type":"number"},"decidedAt":{"type":["number","null"]}},"required":["id","status","operationId","risk","expiresAt"]},"ApprovalEnvelope":{"type":"object","properties":{"approval":{"type":"object","properties":{"id":{"type":"string"},"status":{"const":"pending"},"operationId":{"type":"string"},"risk":{"enum":["destructive","financial","bulk","security"]},"expiresAt":{"type":"number"},"approveUrl":{"type":"string","format":"uri"}},"required":["id","status","operationId","risk","expiresAt","approveUrl"],"additionalProperties":false},"requestId":{"type":"string"}},"required":["approval","requestId"],"additionalProperties":false},"Me":{"type":"object","properties":{"tier":{"enum":["customer","member","operator","platform"]},"principal":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"required":["id","name","email"]},"workspace":{"type":["object","null"]},"role":{"type":["string","null"]},"grant":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"level":{"enum":["read","operate","manage","full"]},"expiresAt":{"type":"number"},"approvalPolicy":{"type":"object","properties":{"destructive":{"type":"boolean"},"financial":{"type":"boolean"},"bulk":{"type":"boolean"},"security":{"const":true}}}},"required":["id","name","prefix","level","expiresAt","approvalPolicy"]},"ceiling":{"enum":["none","read","operate","manage","full"]},"permissions":{"type":"array","items":{"type":"string"}},"riskFlags":{"type":"array","items":{"enum":["read","write","bulk","destructive","financial","security"]}},"resultRedactions":{"type":"array","items":{"type":"string"}},"handoffPaths":{"type":"array","items":{"type":"string"}},"permissionAlternatives":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"rateLimit":{"type":"object","properties":{"limit":{"type":"integer"},"windowSeconds":{"const":60}},"required":["limit","windowSeconds"]}},"required":["tier","principal","workspace","role","grant","ceiling","permissions","rateLimit"]},"Operation":{"type":"object","properties":{"id":{"type":"string"},"group":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"tier":{"enum":["public","customer","member","operator","platform"]},"kind":{"enum":["query","mutation","action"]},"risk":{"enum":["read","write","bulk","destructive","financial","security"]},"permissions":{"type":"array","items":{"type":"string"}},"policy":{"enum":["allow","interactive","forbidden","internal"]},"requiresApproval":{"type":"boolean"},"callable":{"type":"boolean"},"reason":{"enum":["level","ceiling","permission","policy"]},"argsSchema":{"type":"object"},"inputNotes":{"type":"string"},"appUrl":{"type":"string"}},"required":["id","group","title","summary","tier","kind","risk","permissions","policy","requiresApproval","callable"]}}}}